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.");
}