class Protobuf::Field::SignedIntegerField

def decode(value)

def decode(value)
  if (value & 1).zero?
    value >> 1   # positive value
  else
    ~value >> 1  # negative value
  end
end

def encode(value)

def encode(value)
  if value >= 0
    VarintField.encode(value << 1)
  else
    VarintField.encode(~(value << 1))
  end
end