2016-04-18 4 views
0

私は、erlangのprotobuffを使ってerlangのレコードデータ構造をエンコードしようとしています。私はそうする機能を見出していない。protobuffを使ってレコードをコード化する

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? 

これはモジュールですが、私はhttps://github.com/basho/erlang_protobuffs

は、それがプロトコルバッファは、任意の言語でどのように機能するかを簡単にではありません、あなたはあなただけ定義された任意のレコードをエンコードできないあなたに

答えて

3

ありがとう、エンコードするために使用しています。

以下を行う必要があります。

  1. .protoファイルにメッセージの種類を定義します(構文については、プロトコルバッファのドキュメントを読んで、などの種類を、サポートされています)。

  2. 希望する言語のコードを生成します。この場合、READMEに示すようにprotobuffs_compile:scan_file(<path-to-your-proto-file>).を使用してください。

  3. 生成されたコードを使用します。これにはpersonレコードとencode_person機能が含まれます。

関連する問題