encode function

Uint8List encode (int number, [ Uint8List buffer, int offset ])

Implementation

Uint8List encode(int number, [Uint8List buffer,int offset]) {
//  if (!isUint(number, 53));

  buffer = buffer ?? new Uint8List(encodingLength(number));
  offset = offset ?? 0;
  ByteData bytes = buffer.buffer.asByteData();
  // 8 bit
  if (number < 0xfd) {
    bytes.setUint8(offset, number);
    // 16 bit
  } else if (number <= 0xffff) {
    bytes.setUint8(offset, 0xfd);
    bytes.setUint16(offset + 1, number, Endian.little);

    // 32 bit
  } else if (number <= 0xffffffff) {
    bytes.setUint8(offset, 0xfe);
    bytes.setUint32(offset + 1, number, Endian.little);

    // 64 bit
  } else {
    bytes.setUint8(offset, 0xff);
    bytes.setUint32(offset + 1, number, Endian.little);
    bytes.setUint32(offset + 5, (number ~/ 0x100000000) | 0, Endian.little);
  }

  return buffer;
}