Skip to content

Latest commit

 

History

History
44 lines (31 loc) · 1.64 KB

type_5.rst

File metadata and controls

44 lines (31 loc) · 1.64 KB

Type 5 – Maps

CBOR maps are the plain old associate hash maps known from JSON and many other formats and languages, with one exception: any CBOR data item can be a key, not just strings. This is somewhat unusual and you, as an application developer, should keep that in mind.

Maps can be either definite or indefinite, in much the same way as type_4.

Corresponding cbor_type CBOR_TYPE_MAP
Number of allocations (definite) Two plus any manipulations with the data

Number of allocations (indefinite)

Two plus logarithmically many reallocations relative to additions

Storage requirements (definite) sizeof(cbor_pair) * size + sizeof(cbor_item_t)
Storage requirements (indefinite) <= sizeof(cbor_item_t) + sizeof(cbor_pair) * size * BUFFER_GROWTH

Streaming maps

Please refer to /streaming.

Getting metadata

cbor_map_size

cbor_map_allocated

cbor_map_is_definite

cbor_map_is_indefinite

Reading data

cbor_map_handle

Creating new items

cbor_new_definite_map

cbor_new_indefinite_map

Modifying items

cbor_map_add