Class: BareTypes::Int
- Inherits:
-
BarePrimitive
- Object
- BaseType
- BarePrimitive
- BareTypes::Int
- Defined in:
- lib/types.rb
Overview
region Primitives
Instance Method Summary collapse
- #decode(msg) ⇒ Object
-
#encode(msg, buffer) ⇒ Object
developers.google.com/protocol-buffers/docs/encoding Easy to just convert to signed and re-use uint code.
Methods inherited from BarePrimitive
#==, #finalize_references, #to_schema
Methods inherited from BaseType
Constructor Details
This class inherits a constructor from BareTypes::BaseType
Instance Method Details
#decode(msg) ⇒ Object
162 163 164 165 166 |
# File 'lib/types.rb', line 162 def decode(msg) value, rest = Uint.new.decode(msg) value = value.odd? ? (value + 1) / -2 : value / 2 return value, rest end |
#encode(msg, buffer) ⇒ Object
developers.google.com/protocol-buffers/docs/encoding Easy to just convert to signed and re-use uint code
157 158 159 160 |
# File 'lib/types.rb', line 157 def encode(msg, buffer) mappedInteger = msg < 0 ? -2 * msg - 1 : msg * 2 Uint.new.encode(mappedInteger, buffer) end |