Type 6 – Semantic tags

Tag are additional metadata that can be used to extend or specialize the meaning or interpretation of the other data items.

For example, one might tag an array of numbers to communicate that it should be interpreted as a vector.

Please consult the official IANA repository of CBOR tags before inventing new ones.

Corresponding cbor_type CBOR_TYPE_TAG
Number of allocations One plus any manipulations with the data reallocations relative to chunk count
Storage requirements sizeof(cbor_item_t) + the tagged item
cbor_item_t *cbor_new_tag(uint64_t value)

Create a new tag.

Return
new tag. Item reference is NULL.
Parameters
  • value: The tag value. Please consult the tag repository

cbor_item_t *cbor_tag_item(const cbor_item_t *item)

Get the tagged item.

Return
incref the tagged item
Parameters
  • item[borrow]: A tag

uint64_t cbor_tag_value(const cbor_item_t *item)

Get tag value.

Return
The tag value. Please consult the tag repository
Parameters
  • item[borrow]: A tag

void cbor_tag_set_item(cbor_item_t *item, cbor_item_t *tagged_item)

Set the tagged item.

Parameters
  • item[borrow]: A tag
  • tagged_item[incref]: The item to tag