static void ConvertPyToPbRepeated()

in mysqlx-connector-python/src/mysqlxpb/mysqlxpb.cc [479:587]


static void ConvertPyToPbRepeated(
    google::protobuf::Message& message,
    const google::protobuf::FieldDescriptor& field,
    google::protobuf::DynamicMessageFactory& factory,
    PyObject* list) {
  switch (field.type()) {
    case google::protobuf::FieldDescriptor::TYPE_DOUBLE: {
      AddPyListToMessageRepeatedField<double>(message, field, list);
      return;
    }

    case google::protobuf::FieldDescriptor::TYPE_FLOAT: {
      AddPyListToMessageRepeatedField<float>(message, field, list);
      return;
    }

    case google::protobuf::FieldDescriptor::TYPE_INT64: {
      AddPyListToMessageRepeatedField<google::protobuf::int64>(
          message, field, list);
      return;
    }

    case google::protobuf::FieldDescriptor::TYPE_UINT64: {
      AddPyListToMessageRepeatedField<google::protobuf::uint64>(
          message, field, list);
      return;
    }

    case google::protobuf::FieldDescriptor::TYPE_INT32: {
      AddPyListToMessageRepeatedField<google::protobuf::int32>(
          message, field, list);
      return;
    }

    case google::protobuf::FieldDescriptor::TYPE_FIXED64: {
      AddPyListToMessageRepeatedField<google::protobuf::uint64>(
          message, field, list);
      return;
    }

    case google::protobuf::FieldDescriptor::TYPE_FIXED32: {
      AddPyListToMessageRepeatedField<google::protobuf::uint32>(
          message, field, list);
      return;
    }

    case google::protobuf::FieldDescriptor::TYPE_BOOL: {
      AddPyListToMessageRepeatedField<bool>(message, field, list);
      return;
    }

    case google::protobuf::FieldDescriptor::TYPE_STRING: {
      AddPyListToMessageRepeatedString(message, field, list);
      return;
    }

    case google::protobuf::FieldDescriptor::TYPE_MESSAGE: {
      AddPyListToMessageRepeatedMessage(message, field, factory, list);
      return;
    }

    case google::protobuf::FieldDescriptor::TYPE_BYTES: {
      AddPyListToMessageRepeatedString(message, field, list);
      return;
    }

    case google::protobuf::FieldDescriptor::TYPE_UINT32: {
      AddPyListToMessageRepeatedField<google::protobuf::uint32>(
          message, field, list);
      return;
    }

    case google::protobuf::FieldDescriptor::TYPE_ENUM: {
      AddPyListToMessageRepeatedEnum(message, field, list);
      return;
    }

    case google::protobuf::FieldDescriptor::TYPE_SFIXED32: {
      AddPyListToMessageRepeatedField<google::protobuf::int32>(
          message, field, list);
      return;
    }

    case google::protobuf::FieldDescriptor::TYPE_SFIXED64: {
      AddPyListToMessageRepeatedField<google::protobuf::int64>(
          message, field, list);
      return;
    }

    case google::protobuf::FieldDescriptor::TYPE_SINT32: {
      AddPyListToMessageRepeatedField<google::protobuf::int32>(
          message, field, list);
      return;
    }

    case google::protobuf::FieldDescriptor::TYPE_SINT64: {
      AddPyListToMessageRepeatedField<google::protobuf::int64>(
          message, field, list);
      return;
    }

    // Tag-delimited message. Deprecated.
    case google::protobuf::FieldDescriptor::TYPE_GROUP:
      break;
  }

  assert(false);
  throw std::runtime_error("Unknown Protobuf type.");
}