module Cucumber::Messages::Varint

def self.decode_varint(io)

def self.decode_varint(io)
  # https://github.com/ruby-protobuf/protobuf/blob/master/lib/protobuf/varint_pure.rb
  value = index = 0
  begin
    byte = io.readbyte
    value |= (byte & 0x7f) << (7 * index)
    index += 1
  end while (byte & 0x80).nonzero?
  value
end