packInteger method

void packInteger(
  1. int num
)

Implementation

void packInteger(int num) {
  if (num >= -0x20 && num <= 0x7f) {
    _bufferBuilder.append(num & 0xff);
  } else if (num >= 0x00 && num <= 0xff) {
    _bufferBuilder.append(0xcc);
    packUint8(num);
  } else if (num >= -0x80 && num <= 0x7f) {
    _bufferBuilder.append(0xd0);
    packInt8(num);
  } else if (num >= 0x0000 && num <= 0xffff) {
    _bufferBuilder.append(0xcd);
    packUint16(num);
  } else if (num >= -0x8000 && num <= 0x7fff) {
    _bufferBuilder.append(0xd1);
    packInt16(num);
  } else if (num >= 0x00000000 && num <= 0xffffffff) {
    _bufferBuilder.append(0xce);
    packUint32(num);
  } else if (num >= -0x80000000 && num <= 0x7fffffff) {
    _bufferBuilder.append(0xd2);
    packInt32(num);
  } else if (num >= -0x8000000000000000 && num <= 0x7fffffffffffffff) {
    _bufferBuilder.append(0xd3);
    packInt64(num);
  } else if (num >= 0x0000000000000000 && num <= 0xffffffffffffffff) {
    _bufferBuilder.append(0xcf);
    packUint64(num);
  } else {
    throw Exception('Invalid integer');
  }
}