Class: ActiveCypher::Bolt::Packstream::Unpacker

Inherits:
Object
  • Object
show all
Defined in:
lib/active_cypher/bolt/packstream.rb

Overview

Unpacks Packstream byte format into Ruby objects.

Constant Summary collapse

NULL =

Marker Bytes

0xC0
FALSEY =
0xC2
TRUETHY =
0xC3
INT_8 =
0xC8
INT_16 =
0xC9
INT_32 =
0xCA
INT_64 =
0xCB
FLOAT_64 =

Added Float marker

0xC1
TINY_STRING_MARKER_BASE =
0x80
STRING_8_MARKER =
0xD0
STRING_16_MARKER =
0xD1
STRING_32_MARKER =
0xD2
TINY_LIST_MARKER_BASE =
0x90
LIST_8_MARKER =
0xD4
LIST_16_MARKER =
0xD5
LIST_32_MARKER =
0xD6
TINY_MAP_MARKER_BASE =
0xA0
MAP_8_MARKER =
0xD8
MAP_16_MARKER =
0xD9
MAP_32_MARKER =
0xDA
TINY_STRUCT_MARKER_BASE =
0xB0
STRUCT_8_MARKER =
0xDC
STRUCT_16_MARKER =
0xDD
STRUCT_32_MARKER =
0xDE
MARKER_HIGH_NIBBLE_MASK =
0xF0
MARKER_LOW_NIBBLE_MASK =
0x0F

Instance Method Summary collapse

Constructor Details

#initialize(io) ⇒ Unpacker

Returns a new instance of Unpacker.



191
192
193
# File 'lib/active_cypher/bolt/packstream.rb', line 191

def initialize(io)
  @io = io
end

Instance Method Details

#unpackObject

Unpacks the next value from the stream.



196
197
198
199
# File 'lib/active_cypher/bolt/packstream.rb', line 196

def unpack
  marker = read_byte
  unpack_value(marker)
end