encodeEnumField function

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

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

Enums are represented as plain int32 on the wire.

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

Implementation

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