ほとんどのAPIは、生のprotobufストリームを列挙できるように、読者ベースのAPIの形式を持っています。しかし、スキーマなしの解釈があいまいなので、それだけではデータを完全に理解するには不十分です。
- varintがジグザグでエンコードされている可能性があります(
sint32
/ sint64
)。そうでない場合( int32
/ int64
>/ uint32
/ uint64
) - 意味を根本的に変更するか、ブール値または列挙型を変更する
- 固定32 /固定64は、符号付きまたは符号なしの整数でも、IEEE754 float/double
- 長さ接頭辞付きのチャンクは、UTF-8文字列、BLOB、サブメッセージ、またはパックされたプリミティブの繰り返しセットです。サブメッセージの場合、再帰的に繰り返す必要があります。
だから...はい、いいえ。確かに、最も外側のメッセージのフィールド番号を得ることができます。
別のアプローチは、メンバー( Naked {}
のメッセージ)を持つタイプに対して通常の APIを使用し、つまり、すべての実装が提供する「拡張」APIを介して)