pushVarint method

void pushVarint(
  1. int value
)

Implementation

void pushVarint(int value) {
  if (value < 0x40) {
    // 1-byte
    _ensureCapacity(1);
    pushUint8(0x00 | value);
  } else if (value < 0x4000) {
    // 2-byte
    _ensureCapacity(2);
    pushUint16(0x4000 | value);
  } else if (value < 0x40000000) {
    // 4-byte
    _ensureCapacity(4);
    pushUint32(0x80000000 | value);
  } else if (value < 0x4000000000000000) {
    // 8-byte
    _ensureCapacity(8);
    // Use setUint64 for proper 8-byte integer handling
    _byteData.setUint64(_writeIndex, 0xC000000000000000 | value, Endian.big);
    _writeIndex += 8;
  } else {
    throw ArgumentError('Value too large for QUIC var-int');
  }
}