class Cborb::Decoding::Types::Map

To represent major type: 5(definite-length)

@see tools.ietf.org/html/rfc7049#section-2.1

Constants

Intermediate

Public Class Methods

accept(im_data, type, value) click to toggle source
# File lib/cborb/decoding/types/map.rb, line 20
def self.accept(im_data, type, value)
  im_data.keys_and_values << value
  if im_data.keys_and_values.size == im_data.size
    Hash[*im_data.keys_and_values]
  else
    Cborb::Decoding::State::CONTINUE
  end
end
decode(state, additional_info) click to toggle source
# File lib/cborb/decoding/types/map.rb, line 10
def self.decode(state, additional_info)
  size = consume_as_integer(state, additional_info) * 2

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