in out_writeapi.go [162:184]
func jsonToBinary(message_descriptor protoreflect.MessageDescriptor, jsonRow map[string]interface{}) ([]byte, error) {
// JSON map -> JSON byte
row, err := json.Marshal(jsonRow)
if err != nil {
return nil, err
}
// Create empty message
message := dynamicpb.NewMessage(message_descriptor)
// First, json byte -> proto message
err = protojson.Unmarshal(row, message)
if err != nil {
return nil, err
}
// Then, proto message -> bytes.
b, err := proto.Marshal(message)
if err != nil {
return nil, err
}
return b, nil
}