Encoding(mapping=None, *, ignore_unknown_fields=False, **kwargs)
Rules used to convert to or from lower level types.
This message has oneof
_ fields (mutually exclusive fields).
For each oneof, at most one member field can be set at the same time.
Setting any member of the oneof automatically clears all other
members.
.. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
Attributes |
|
---|---|
Name | Description |
singleton |
google.cloud.bigtable_admin_v2.types.Type.Struct.Encoding.Singleton
Use Singleton encoding.
This field is a member of oneof _ encoding .
|
delimited_bytes |
google.cloud.bigtable_admin_v2.types.Type.Struct.Encoding.DelimitedBytes
Use DelimitedBytes encoding.
This field is a member of oneof _ encoding .
|
ordered_code_bytes |
google.cloud.bigtable_admin_v2.types.Type.Struct.Encoding.OrderedCodeBytes
User OrderedCodeBytes encoding.
This field is a member of oneof _ encoding .
|
Classes
DelimitedBytes
DelimitedBytes(mapping=None, *, ignore_unknown_fields=False, **kwargs)
Fields are encoded independently and concatenated with a
configurable delimiter
in between.
A struct with no fields defined is encoded as a single
delimiter
.
Sorted mode:
- Fields are encoded in sorted mode.
- Encoded field values must not contain any bytes <=
delimiter[0]
- Element-wise order is preserved:
A < B
ifA[0] < B[0]
, or ifA[0] == B[0] && A[1] < B[1]
, etc. Strict prefixes sort first.
Distinct mode:
- Fields are encoded in distinct mode.
- Encoded field values must not contain
delimiter[0]
.
OrderedCodeBytes
OrderedCodeBytes(mapping=None, *, ignore_unknown_fields=False, **kwargs)
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
ifA[0] < B[0]
, or ifA[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.
Singleton
Singleton(mapping=None, *, ignore_unknown_fields=False, **kwargs)
Uses the encoding of fields[0].type
as-is. Only valid if
fields.size == 1
.