decodeVarint64 static method

ProtoBufferDecodedField<BigInt> decodeVarint64(
  1. List<int> bytes,
  2. ProtoFieldConfig config, {
  3. bool decodeWiretype = false,
  4. int offset = 0,
})

Implementation

static ProtoBufferDecodedField<BigInt> decodeVarint64(
  List<int> bytes,
  ProtoFieldConfig config, {
  bool decodeWiretype = false,
  int offset = 0,
}) {
  final start = offset;
  if (decodeWiretype) {
    final (_, _, consumed) = ProtoWireType.decode(
      bytes,
      offset,
      expectedTag: config.fieldNumber,
    );
    offset += consumed;
  }
  final (decode, consumed) = _decodeVarintBig(
    bytes,
    startIndex: offset,
    sign: config.fieldType == ProtoFieldType.int64,
  );
  offset += consumed;
  return ProtoBufferDecodedField(
    config: config,
    value: decode,
    consumed: offset - start,
  );
}