toSize method Null safety

Uint8List toSize(
  1. Uint8List bytes
)

Converts a Uint8List into its compact size representation.

Implementation

static Uint8List toSize(Uint8List bytes) {
  int size = bytes.length;
  BytesBuilder byteList = BytesBuilder();
  if (size <= 252) {
    byteList.addByte(size);
  } else if (size <= 0xffff) {
    byteList.addByte(253);
    Uint16List uint16list = Uint16List.fromList([size]);
    byteList.add(uint16list.buffer.asUint8List());
  } else if (size <= 0xffffffff) {
    byteList.addByte(254);
    Uint32List uint32list = Uint32List.fromList([size]);
    byteList.add(uint32list.buffer.asUint8List());
  } else {
    byteList.addByte(255);
    Uint64List uint64list = Uint64List.fromList([size]);
    byteList.add(uint64list.buffer.asUint8List());
  }
  return byteList.toBytes();
}