field_len library
Length-delimited (wire type 2) field encoding/decoding for protobuf.
Builds on the wire primitives in wire_varint.dart, wire_fixed.dart,
and wire_bytes.dart to provide complete field-level encode/decode for
strings, bytes, embedded messages, and packed repeated scalars.
Proto3 default-value elision: all encode functions are no-ops when the value is empty (empty string, empty byte list, empty values list).
References:
Functions
-
decodePackedFixed32(
List< int> data) → List<int> -
Decode concatenated fixed32 (4-byte little-endian) integers from
data. -
decodePackedVarints(
List< int> data) → List<int> -
Decode concatenated varint-encoded integers from
data. -
decodeStringValue(
List< int> data) → String -
Decode a UTF-8 string from raw length-delimited
data. -
encodeBytesField(
List< int> buffer, int fieldNumber, List<int> value) → List<int> - Encode a bytes field (wire type 2): tag + varint(len) + raw_bytes.
-
encodeMessageField(
List< int> buffer, int fieldNumber, List<int> messageBytes) → List<int> - Encode an embedded message field (wire type 2): tag + varint(msg_len) + msg_bytes.
-
encodePackedFixed32Field(
List< int> buffer, int fieldNumber, List<int> values) → List<int> - Encode a packed repeated fixed32 field (wire type 2): tag + varint(total_len) + concatenated 4-byte little-endian values.
-
encodePackedFixed64Field(
List< int> buffer, int fieldNumber, List<int> values) → List<int> - Encode a packed repeated fixed64 field (wire type 2): tag + varint(total_len) + concatenated 8-byte little-endian values.
-
encodePackedVarintsField(
List< int> buffer, int fieldNumber, List<int> values) → List<int> - Encode a packed repeated varints field (wire type 2): tag + varint(total_len) + concatenated varint-encoded values.
-
encodeStringField(
List< int> buffer, int fieldNumber, String value) → List<int> - Encode a string field (wire type 2): tag + varint(utf8_len) + utf8_bytes.