24 return *(uint16_t*)item->
data;
30 return *(uint32_t*)item->
data;
36 return *(uint64_t*)item->
data;
66 *(uint16_t*)item->
data = value;
72 *(uint32_t*)item->
data = value;
78 *(uint64_t*)item->
data = value;
96 .metadata = {.int_metadata = {.width =
CBOR_INT_8}},
106 .metadata = {.int_metadata = {.width =
CBOR_INT_16}},
116 .metadata = {.int_metadata = {.width =
CBOR_INT_32}},
126 .metadata = {.int_metadata = {.width =
CBOR_INT_64}},
_cbor_malloc_t _cbor_malloc
bool cbor_is_int(const cbor_item_t *item)
Is the item an integer, either positive or negative?
#define _CBOR_UNREACHABLE
#define _CBOR_NOTNULL(cbor_item)
@ CBOR_TYPE_UINT
0 - positive integers
@ CBOR_TYPE_NEGINT
1 - negative integers
cbor_int_width
Possible widths of CBOR_TYPE_UINT items.
uint32_t cbor_get_uint32(const cbor_item_t *item)
Extracts the integer value.
uint16_t cbor_get_uint16(const cbor_item_t *item)
Extracts the integer value.
void cbor_set_uint16(cbor_item_t *item, uint16_t value)
Assigns the integer value.
cbor_item_t * cbor_new_int32(void)
Allocates new integer with 4B width.
uint8_t cbor_get_uint8(const cbor_item_t *item)
Extracts the integer value.
cbor_item_t * cbor_build_uint16(uint16_t value)
Constructs a new positive integer.
void cbor_set_uint32(cbor_item_t *item, uint32_t value)
Assigns the integer value.
cbor_int_width cbor_int_get_width(const cbor_item_t *item)
Queries the integer width.
cbor_item_t * cbor_new_int8(void)
Allocates new integer with 1B width.
cbor_item_t * cbor_build_negint16(uint16_t value)
Constructs a new negative integer.
cbor_item_t * cbor_build_negint64(uint64_t value)
Constructs a new negative integer.
void cbor_set_uint8(cbor_item_t *item, uint8_t value)
Assigns the integer value.
void cbor_mark_negint(cbor_item_t *item)
Marks the integer item as a negative integer.
uint64_t cbor_get_uint64(const cbor_item_t *item)
Extracts the integer value.
cbor_item_t * cbor_build_negint8(uint8_t value)
Constructs a new negative integer.
uint64_t cbor_get_int(const cbor_item_t *item)
Extracts the integer value.
cbor_item_t * cbor_new_int64(void)
Allocates new integer with 8B width.
cbor_item_t * cbor_build_uint32(uint32_t value)
Constructs a new positive integer.
cbor_item_t * cbor_build_uint8(uint8_t value)
Constructs a new positive integer.
cbor_item_t * cbor_build_negint32(uint32_t value)
Constructs a new negative integer.
cbor_item_t * cbor_new_int16(void)
Allocates new integer with 2B width.
void cbor_mark_uint(cbor_item_t *item)
Marks the integer item as a positive integer.
void cbor_set_uint64(cbor_item_t *item, uint64_t value)
Assigns the integer value.
cbor_item_t * cbor_build_uint64(uint64_t value)
Constructs a new positive integer.
unsigned char * data
Raw data block - interpretation depends on metadata.
cbor_type type
Major type discriminator.
size_t refcount
Reference count - initialize to 0.
union cbor_item_metadata metadata
Discriminated by type.