encode function

_EncodeOutputModel encode(
  1. int number, [
  2. Uint8List? buffer,
  3. int offset = 0
])

Encode varuint

Implementation

_EncodeOutputModel encode(int number, [Uint8List? buffer, int offset = 0]) {
  _checkUInt53(number);

  int bytes = 0;

  buffer ??= Uint8List(encodingLength(number));

  ByteData bufferByteData = buffer.buffer.asByteData();

  // 8 bit
  if (number < 0xfd) {
    bufferByteData.setUint8(offset, number);
    bytes = 1;

    // 16 bit
  } else if (number <= 0xffff) {
    bufferByteData.setUint8(offset, 0xfd);
    bufferByteData.setUint16(offset + 1, number, Endian.little);
    bytes = 3;

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

    // 64 bit
  } else {
    bufferByteData.setUint8(offset, 0xff);
    bufferByteData.setUint64(offset + 1, number, Endian.little);
    bytes = 9;
  }

  return _EncodeOutputModel(bytes, buffer);
}