encodeVarint method

List<int> encodeVarint(
  1. int value
)

Encodes an integer to data using variable-length encoding technique (varint) format.

Implementation

List<int> encodeVarint(int value) {
  final List<int> byts = <int>[];
  int cur = value;
  while (cur != 0) {
    byts.add(cur & 127);
    cur >>= 7;
  }

  int i = byts.length - 1;
  if (i == 0) {
    return byts;
  }

  final List<int> modifiedBytes = <int>[];

  while (i >= 0) {
    int val = byts[i];
    if (i > 0) {
      val = val | 0x80;
    }
    modifiedBytes.add(val);
    i--;
  }

  return modifiedBytes;
}