lebDecode<T> function
Decode a leb encoded buffer into a bigint. The number will always be positive (does not support signed leb encoding).
Implementation
BigInt lebDecode<T>(BufferPipe<T> pipe) {
BigInt weight = BigInt.one;
BigInt value = BigInt.zero;
int byte;
do {
byte = safeRead(pipe, 1)[0] as int;
value += BigInt.from(byte & 0x7f) * weight;
weight *= BigInt.from(128);
} while (byte >= 0x80);
return value;
}