Erlang 使用protobuff对记录进行编码

Erlang 使用protobuff对记录进行编码,erlang,data-transfer,protocol-buffers,Erlang,Data Transfer,Protocol Buffers,我希望使用protobuff for erlang在erlang中编码一个记录数据结构。我还没有找到这样做的函数 rd(person, {name = "", phone = [], address}). A = #person{phone=[0,8,2,3,4,3,1,2], name="Robert"}. protobuffs:encode(1, A, bytes). ** exception error: bad argument in function protobu

我希望使用protobuff for erlang在erlang中编码一个记录数据结构。我还没有找到这样做的函数

 rd(person, {name = "", phone = [], address}).
 A = #person{phone=[0,8,2,3,4,3,1,2], name="Robert"}.

  protobuffs:encode(1, A, bytes).
  ** exception error: bad argument
  in function  protobuffs:encode_internal/3
    called as protobuffs:encode_internal(1,
                                         #person{
                                          name = "Robert",
                                          phone = [0,8,2,3,4,3,1,2],
                                          address = undefined},
                                         bytes)

   How can I encode a record using protobuff? 
这是我用来编码的模块


谢谢

您不能对刚刚定义的任意记录进行编码,这根本不是任何语言中协议缓冲区的工作方式

您需要:

  • .proto
    文件中定义消息类型(阅读协议缓冲区文档了解语法、支持的类型等)

  • 从中生成所需语言的代码。在本例中,使用
    protobuff\u compile:scan\u file()。
    ,如自述文件所示

  • 使用生成的代码。它将包括
    person
    记录和
    encode\u person
    功能


  • 您不能对刚刚定义的任意记录进行编码,这在任何语言中都不是协议缓冲区的工作方式

    您需要:

  • .proto
    文件中定义消息类型(阅读协议缓冲区文档了解语法、支持的类型等)

  • 从中生成所需语言的代码。在本例中,使用
    protobuff\u compile:scan\u file()。
    ,如自述文件所示

  • 使用生成的代码。它将包括
    person
    记录和
    encode\u person
    功能