encodePackedFixed64Field function

List<int> encodePackedFixed64Field(
  1. List<int> buffer,
  2. int fieldNumber,
  3. List<int> values
)

Encode a packed repeated fixed64 field (wire type 2): tag + varint(total_len) + concatenated 8-byte little-endian values.

Used for repeated fixed64/sfixed64/double fields.

Proto3 rule: does not emit anything if values is empty.

Returns buffer with the field bytes appended.

Implementation

List<int> encodePackedFixed64Field(
  List<int> buffer,
  int fieldNumber,
  List<int> values,
) {
  if (values.isEmpty) return buffer;
  List<int> temp = [];
  for (int i = 0; i < values.length; i++) {
    encodeFixed64(temp, values[i]);
  }
  encodeTag(buffer, fieldNumber, _wireTypeLEN);
  encodeBytes(buffer, temp);
  return buffer;
}