Module: ProtobufJavaHelpers::EncodeDecode
- Includes:
- Varinter
- Defined in:
- lib/protobuf_java_helpers.rb
Instance Method Summary collapse
Instance Method Details
#decode(stream) ⇒ Object
28 29 30 31 32 33 34 35 36 |
# File 'lib/protobuf_java_helpers.rb', line 28 def decode(stream) value = index = 0 begin byte = stream.readbyte value |= (byte & 0x7f) << (7 * index) index += 1 end while (byte & 0x80).nonzero? value end |
#encode(value) ⇒ Object
24 25 26 |
# File 'lib/protobuf_java_helpers.rb', line 24 def encode(value) to_varint(value) || pure_encode(value) end |
#pure_encode(value) ⇒ Object
15 16 17 18 19 20 21 22 |
# File 'lib/protobuf_java_helpers.rb', line 15 def pure_encode(value) bytes = [] until value < 128 bytes << (0x80 | (value & 0x7f)) value >>= 7 end (bytes << value).pack('C*') end |