decode static method
Implementation
static List<ProtocolBufferDecoderResult> decode(List<int> bytes) {
final List<ProtocolBufferDecoderResult> results = [];
int index = 0;
while (index < bytes.length) {
final decodeTag = _decodeVarint(bytes.sublist(index));
index += decodeTag.consumed;
final int tag = decodeTag.value;
final int fieldId = tag >> 3;
final int wireType = tag & 0x07;
switch (wireType) {
case 2:
final decodeLength = _decodeVarint(bytes.sublist(index));
index += decodeLength.consumed;
results.add(ProtocolBufferDecoderResult<List<int>>(
tagNumber: fieldId,
value: bytes.sublist(index, index + decodeLength.value)));
index += decodeLength.value;
break;
case 0:
final decodeInt = _decodeInt(bytes.sublist(index));
index += decodeInt.consumed;
final result = ProtocolBufferDecoderResult(
tagNumber: fieldId, value: decodeInt.value);
results.add(result);
break;
default:
throw TronPluginException(
'protobuf wiretype not supported. filedId :$fieldId $wireType $tag');
}
}
return results;
}