タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

ProtocolBufferに関するsatoshi_hiraishiのブックマーク (1)

  • つくって学ぶ Protocol Buffers エンコーディング | メルカリエンジニアリング

    Wire type は実際の型を示しているわけではないことに注意してください。Wire type はあくまでも値を読み取るための手がかりにすぎないため、読み取った値をどの型にするべきか知るためには descriptor を参照しなければいけません。 タグは次のようなロジックでエンコードされます。 fieldNumber << 3 | wireType たとえばフィールド foo の場合、フィールド番号は 1、Wire type は 0 なので 08 となります。これはエンコードされたバイト列の先頭バイトと一致しています。 fieldNumber := 1 wireType := 0 tag := fieldNumber<<3 | wireType fmt.Printf("%x", tag) // 08 タグの直後にはそのフィールドに対応する実際の値が続きます。 Wire type に基づい

    つくって学ぶ Protocol Buffers エンコーディング | メルカリエンジニアリング
  • 1