encodeUint32Field function
Encodes a uint32 field: tag(fieldNumber, VARINT) + varint(value).
value is expected to be in the range 0, 2^32 - 1.
Returns buffer unchanged if value is 0 (proto3 default).
Implementation
List<int> encodeUint32Field(List<int> buffer, int fieldNumber, int value) {
if (value == 0) return buffer;
encodeTag(buffer, fieldNumber, _wireTypeVarint);
encodeVarint(buffer, value);
return buffer;
}