GoogleBigtableAdminV2TypeStructEncodingOrderedCodeBytes typedef
Fields are encoded independently and concatenated with the fixed byte pair {0x00, 0x01} in between.
Any null (0x00) byte in an encoded field is replaced by the fixed byte pair
{0x00, 0xFF}. Fields that encode to the empty string "" have special
handling: - If every field encodes to "", or if the STRUCT has no fields
defined, then the STRUCT is encoded as the fixed byte pair {0x00, 0x00}. -
Otherwise, the STRUCT only encodes until the last non-empty field, omitting
any trailing empty fields. Any empty fields that aren't omitted are replaced
with the fixed byte pair {0x00, 0x00}. Examples: - STRUCT() -> "\00\00" -
STRUCT("") -> "\00\00" - STRUCT("", "") -> "\00\00" - STRUCT("", "B") ->
"\00\00" + "\00\01" + "B" - STRUCT("A", "") -> "A" - STRUCT("", "B", "")
-> "\00\00" + "\00\01" + "B" - STRUCT("A", "", "C") -> "A" + "\00\01" +
"\00\00" + "\00\01" + "C" Since null bytes are always escaped, this encoding
can cause size blowup for encodings like Int64.BigEndianBytes
that are
likely to produce many such bytes. Sorted mode: - Fields are encoded in
sorted mode. - All values supported by the field encodings are allowed -
Element-wise order is preserved: A < B
if A[0] < B[0]
, or if A[0] == B[0] && A[1] < B[1]
, etc. Strict prefixes sort first. Distinct mode: -
Fields are encoded in distinct mode. - All values supported by the field
encodings are allowed.
Implementation
typedef GoogleBigtableAdminV2TypeStructEncodingOrderedCodeBytes = $Empty;