writeSteppedVarInt method

void writeSteppedVarInt(
  1. int value, {
  2. bool signed = true,
  3. List<int> bitLimits = stepList2b,
})

Implementation

void writeSteppedVarInt(int value,
    {bool signed = true, List<int> bitLimits = stepList2b}) {
  if (signed) {
    writeBit(value > 0);
  }

  int step = findBitStep(value, bitLimits);

  if (step == -1) {
    throw new Exception("Value too large");
  }

  writeInt(step, signed: false, bits: getBitsNeeded(bitLimits.length - 1));
  writeInt(value.abs(), signed: false, bits: bitLimits[step]);
}