uvarintMarshalBinary function
Implementation
Uint8List uvarintMarshalBinary(int val, [int? field]) {
const int radix = 8;
BigInt bigInt = BigInt.from(val);
List<int> numData = [];
var _bigInt = bigInt;
BigInt mxNum = BigInt.from(127);
while (_bigInt > mxNum) {
var tmpBigInt = _bigInt.toUnsigned(radix);
if ((tmpBigInt + BigInt.from(128)) < BigInt.from(255)) {
tmpBigInt += BigInt.from(128);
}
numData.add(tmpBigInt.toInt());
_bigInt = _bigInt >> 7;
}
var tmpBigInt = _bigInt.toUnsigned(radix);
if ((tmpBigInt > BigInt.from(127)) && ((tmpBigInt + BigInt.from(128)) < BigInt.from(255))) {
tmpBigInt += BigInt.from(128);
}
numData.add(tmpBigInt.toInt());
if (field != null) {
return fieldMarshalBinary(field, numData.asUint8List());
}
return numData.asUint8List();
}