decode static method
Implementation
static List<TronTronProtocolBufferDecoderResult> decode(List<int> bytes) {
final List<TronTronProtocolBufferDecoderResult> 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(
TronTronProtocolBufferDecoderResult<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 = TronTronProtocolBufferDecoderResult(
tagNumber: fieldId,
value: decodeInt.value,
);
results.add(result);
break;
default:
throw TronPluginException(
'protobuf wiretype not supported. filedId :$fieldId $wireType $tag',
);
}
}
return results;
}