Class: Bytepack::Array

Inherits:
Complex show all
Defined in:
lib/bytepack/complex/array.rb

Constant Summary collapse

LENGTH_TYPE =
AnyType

Class Method Summary collapse

Methods inherited from Struct

classifyDataType, config, packingDataType, single_type_array?, testpacking

Class Method Details

.pack(array = []) ⇒ Object



6
7
8
9
# File 'lib/bytepack/complex/array.rb', line 6

def pack(array = [])
  elements_count = array.size
  self::LENGTH_TYPE.pack(elements_count) + array.map {|val| AnyType.pack(val)}.join
end

.unpack(bytes, offset = 0) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/bytepack/complex/array.rb', line 11

def unpack(bytes, offset = 0)
  elements_count, offset = *self::LENGTH_TYPE.unpack(bytes, offset)
  elements = elements_count.times.map do
    element, offset = *AnyType.unpack(bytes, offset)
    element
  end
  [elements, offset]
end