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