GoogleBigtableAdminV2TypeStructEncodingOrderedCodeBytes
import type { GoogleBigtableAdminV2TypeStructEncodingOrderedCodeBytes } from "https://googleapis.deno.dev/v1/bigtableadmin:v2.ts";
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.