uvarintMarshalBinaryAlt function

Uint8List uvarintMarshalBinaryAlt(
  1. int val, [
  2. int? field
])

Implementation

Uint8List uvarintMarshalBinaryAlt(int val, [int? field]) {
  const int radix = 8; // Set radix value
  BigInt bigInt = BigInt.from(val); // converting int to BigInt for Unsigned bit data conversion
  final data =
      ByteData((bigInt.bitLength / radix).ceil()); // Create Empty byte array with  length(in bytes) in given number
  var _bigInt = bigInt;
  var i = 0;

  for (i = 0; i < data.lengthInBytes; i++) {
    data.setUint8(i, _bigInt.toUnsigned(radix).toInt()); // Extract last 8 bits and convert them into decimal

    _bigInt = _bigInt >> 7;
  }

  if (field != null) {
    return fieldMarshalBinary(field, data.buffer.asUint8List());
  }

  return data.buffer.asUint8List();
}