Class: Cborb::Decoding::Types::Array

Inherits:
Type
  • Object
show all
Extended by:
IntegerDecodable
Defined in:
lib/cborb/decoding/types/array.rb

Overview

To represent major type: 4(definite-length)

Defined Under Namespace

Classes: Intermediate

Constant Summary

Constants included from IntegerDecodable

IntegerDecodable::UNPACK_TEMPLATES

Class Method Summary collapse

Methods included from IntegerDecodable

consume_as_integer

Methods inherited from Type

indefinite?

Class Method Details

.accept(im_data, type, value) ⇒ Object



20
21
22
23
# File 'lib/cborb/decoding/types/array.rb', line 20

def self.accept(im_data, type, value)
  im_data.array << value
  im_data.size == im_data.array.size ? im_data.array : Cborb::Decoding::State::CONTINUE
end

.decode(state, additional_info) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/cborb/decoding/types/array.rb', line 10

def self.decode(state, additional_info)
  size = consume_as_integer(state, additional_info)

  if size > 0
    state.push_stack(self, Intermediate.new(size, []))
  else
    state.accept_value(self, [])
  end
end