Encoding¶
The easiest way to encode data items is using the cbor_serialize() or cbor_serialize_alloc() functions:
-
size_t
cbor_serialize(const cbor_item_t *item, cbor_mutable_data buffer, size_t buffer_size)¶ Serialize the given item.
- Return
- Length of the result. 0 on failure.
- Parameters
item[borrow]-A data item
buffer-Buffer to serialize to
buffer_size-Size of the
buffer
-
size_t
cbor_serialize_alloc(const cbor_item_t *item, cbor_mutable_data *buffer, size_t *buffer_size)¶ Serialize the given item, allocating buffers as needed.
Warning
It is your responsibility to free the buffer using an appropriate
freeimplementation.- Return
- Length of the result. 0 on failure, in which case
bufferisNULL. - Parameters
item[borrow]-A data item
buffer[out]-Buffer containing the result
buffer_size[out]-Size of the
buffer
Type-specific serializers¶
In case you know the type of the item you want to serialize beforehand, you can use one of the type-specific serializers.
Note
Unless compiled in debug mode, these do not verify the type. Passing an incorrect item will result in an undefined behavior.
-
size_t
cbor_serialize_uint(const cbor_item_t *, cbor_mutable_data, size_t)¶ Serialize an uint.
- Return
- Length of the result. 0 on failure.
- Parameters
item[borrow]-A uint
buffer-Buffer to serialize to
buffer_size-Size of the
buffer
-
size_t
cbor_serialize_negint(const cbor_item_t *, cbor_mutable_data, size_t)¶ Serialize a negint.
- Return
- Length of the result. 0 on failure.
- Parameters
item[borrow]-A neging
buffer-Buffer to serialize to
buffer_size-Size of the
buffer
-
size_t
cbor_serialize_bytestring(const cbor_item_t *, cbor_mutable_data, size_t)¶ Serialize a bytestring.
- Return
- Length of the result. 0 on failure.
- Parameters
item[borrow]-A bytestring
buffer-Buffer to serialize to
buffer_size-Size of the
buffer
-
size_t
cbor_serialize_string(const cbor_item_t *, cbor_mutable_data, size_t)¶ Serialize a string.
- Return
- Length of the result. 0 on failure.
- Parameters
item[borrow]-A string
buffer-Buffer to serialize to
buffer_size-Size of the
buffer
-
size_t
cbor_serialize_array(const cbor_item_t *, cbor_mutable_data, size_t)¶ Serialize an array.
- Return
- Length of the result. 0 on failure.
- Parameters
item[borrow]-An array
buffer-Buffer to serialize to
buffer_size-Size of the
buffer
-
size_t
cbor_serialize_map(const cbor_item_t *, cbor_mutable_data, size_t)¶ Serialize a map.
- Return
- Length of the result. 0 on failure.
- Parameters
item[borrow]-A map
buffer-Buffer to serialize to
buffer_size-Size of the
buffer
-
size_t
cbor_serialize_tag(const cbor_item_t *, cbor_mutable_data, size_t)¶ Serialize a tag.
- Return
- Length of the result. 0 on failure.
- Parameters
item[borrow]-A tag
buffer-Buffer to serialize to
buffer_size-Size of the
buffer
-
size_t
cbor_serialize_float_ctrl(const cbor_item_t *, cbor_mutable_data, size_t)¶ Serialize a.
- Return
- Length of the result. 0 on failure.
- Parameters
item[borrow]-A float or ctrl
buffer-Buffer to serialize to
buffer_size-Size of the
buffer