varIntWriter function
Implementation
Uint8List varIntWriter(int? length) {
ByteDataWriter writer = ByteDataWriter();
if (length == null) {
return writer.toBytes();
}
if (length < 0xFD) {
writer.writeUint8(length);
return writer.toBytes();
}
if (length < 0xFFFF) {
// return HEX.decode("FD" + length.toRadixString(16));
writer.writeUint8(253);
writer.writeUint16(length, Endian.little);
return writer.toBytes();
}
if (length < 0xFFFFFFFF) {
// return HEX.decode("FE" + length.toRadixString(16));
writer.writeUint8(254);
writer.writeUint32(length, Endian.little);
return writer.toBytes();
}
if (BigInt.parse("0xFFFFFFFFFFFFFFFF").compareTo(BigInt.from(length)) == -1) {
// return HEX.decode("FF" + length.toRadixString(16));
writer.writeUint8(255);
writer.writeInt32(length & -1, Endian.little);
writer.writeUint32((length / 0x100000000).floor(), Endian.little);
return writer.toBytes();
}
return writer.toBytes();
}