encodeInt32Field function

List<int> encodeInt32Field(
  1. List<int> buffer,
  2. int fieldNumber,
  3. int value
)

Encodes an int32 field: tag(fieldNumber, VARINT) + varint(value).

For negative values, protobuf encodes int32 as a 10-byte varint (sign- extended to 64 bits). Dart's int is already 64-bit two's-complement, so passing a negative value to encodeVarint naturally produces the correct encoding.

Returns buffer unchanged if value is 0 (proto3 default).

Implementation

List<int> encodeInt32Field(List<int> buffer, int fieldNumber, int value) {
  if (value == 0) return buffer;
  encodeTag(buffer, fieldNumber, _wireTypeVarint);
  encodeVarint(buffer, value);
  return buffer;
}