getUVarint static method

VarintResult getUVarint(
  1. Uint8List buffer,
  2. int bufferOffset
)

Given a varint, get the integer value

Implementation

static VarintResult getUVarint(Uint8List buffer, int bufferOffset) {
  var x = 0;
  var s = 0;

  for (var i = 0; i < buffer.length; i++) {
    var b = buffer[bufferOffset + i];
    if (b < 0x80) {
      if (i > 9 || i == 9 && b > 1) {
        return VarintResult(0, -(i + 1));
      }
      return VarintResult(x | (b & 0xff) << s, i + 1);
    }
    x |= ((b & 0x7f) & 0xff) << s;
    s += 7;
  }
  return VarintResult();
}