class Protobuf::Field::IntegerField

def decode(value)

def decode(value)
  value -= 0x1_0000_0000_0000_0000 if (value & 0x8000_0000_0000_0000).nonzero?
  value
end

def encode(value)

def encode(value)
  # original Google's library uses 64bits integer for negative value
  ::Protobuf::Field::VarintField.encode(value & 0xffff_ffff_ffff_ffff)
end