encodeEnumField function
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;
}