decodeLength static method
BigInt
decodeLength(
- MutableIterable input
)
Implementation
static BigInt decodeLength(final MutableIterable input) {
if (input.isEmpty) {
throw Exception('Invalid data');
}
if ((input.first & 0x80) == 0) {
final ret = BigInt.from(input.first);
input.mutate = input.skip(1);
return ret;
}
int numBytes = input.first & 0x7F;
input.mutate = input.skip(1);
if (input.length < numBytes) {
throw Exception('Invalid data');
}
final ret = bytesToBigInt(input.take(numBytes));
input.mutate = input.skip(numBytes);
return ret;
}