本節ではメッセージの中で使われる基本的なデータ型を説明します。
ネットワークバイト順(最上位バイトが先頭)におけるnビットの整数。 もしiが指定されていればそれは高精度値です。 さもなければ変数です。 例えばInt16、Int32(42)など。
nビット整数のk次元の配列です。 それぞれはネットワークバイト順です。 配列サイズkは常にメッセージの前のフィールドで決定されます。 例えばInt16[M]。
ヌル終端文字列(C様式文字列)。文字列には長さ制限の指定はありません。 sが指定されていればそれは高精度値です。 さもなければ値は変数です。 例えばString、String64("user")など。
注意: バックエンドから返すことができる文字列の長さには事前に定義された制限はありません。 フロントエンドではメモリに収まるものは全て受け入れられるように拡張可能なバッファを使用するコーディング戦略を勧めます。 これが実行できないのであれば、文字列全体を読み取り、固定長バッファに合わない後の方の文字を破棄してください。
厳密にnバイト。 フィールド幅nが定数でない場合、メッセージの前のフィールドから決定されます。 cが指定されれば、それは高精度値です。 例えば Byte、Byte1('\n')など。