libcbor 0.12.0
libcbor is a C library for parsing and generating CBOR, the general-purpose schema-less binary data format.
Loading...
Searching...
No Matches
maps.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2014-2020 Pavel Kalvoda <me@pavelkalvoda.com>
3 *
4 * libcbor is free software; you can redistribute it and/or modify
5 * it under the terms of the MIT license. See LICENSE for details.
6 */
7
8#ifndef LIBCBOR_MAPS_H
9#define LIBCBOR_MAPS_H
10
11#include "cbor/cbor_export.h"
12#include "cbor/common.h"
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18/*
19 * ============================================================================
20 * Map manipulation
21 * ============================================================================
22 */
23
29_CBOR_NODISCARD CBOR_EXPORT size_t cbor_map_size(const cbor_item_t* item);
30
36_CBOR_NODISCARD CBOR_EXPORT size_t cbor_map_allocated(const cbor_item_t* item);
37
45_CBOR_NODISCARD CBOR_EXPORT cbor_item_t* cbor_new_definite_map(size_t size);
46
54
66_CBOR_NODISCARD CBOR_EXPORT bool cbor_map_add(cbor_item_t* item,
67 struct cbor_pair pair);
68
78_CBOR_NODISCARD CBOR_EXPORT bool _cbor_map_add_key(cbor_item_t* item,
79 cbor_item_t* key);
80
91 cbor_item_t* value);
92
98_CBOR_NODISCARD CBOR_EXPORT bool cbor_map_is_definite(const cbor_item_t* item);
99
106 const cbor_item_t* item);
107
114_CBOR_NODISCARD CBOR_EXPORT struct cbor_pair* cbor_map_handle(
115 const cbor_item_t* item);
116
117#ifdef __cplusplus
118}
119#endif
120
121#endif // LIBCBOR_MAPS_H
#define _CBOR_NODISCARD
Definition common.h:93
bool cbor_map_is_definite(const cbor_item_t *item)
Is this map definite?
Definition maps.c:113
struct cbor_pair * cbor_map_handle(const cbor_item_t *item)
Get the pairs storage.
Definition maps.c:122
size_t cbor_map_size(const cbor_item_t *item)
Get the number of pairs.
Definition maps.c:11
size_t cbor_map_allocated(const cbor_item_t *item)
Get the size of the allocated storage.
Definition maps.c:16
bool _cbor_map_add_key(cbor_item_t *item, cbor_item_t *key)
Add a key to the map.
Definition maps.c:52
cbor_item_t * cbor_new_indefinite_map(void)
Create a new indefinite map.
Definition maps.c:37
bool cbor_map_is_indefinite(const cbor_item_t *item)
Is this map indefinite?
Definition maps.c:118
bool _cbor_map_add_value(cbor_item_t *item, cbor_item_t *value)
Add a value to the map.
Definition maps.c:95
cbor_item_t * cbor_new_definite_map(size_t size)
Create a new definite map.
Definition maps.c:21
bool cbor_map_add(cbor_item_t *item, struct cbor_pair pair)
Add a pair to the map.
Definition maps.c:107
The item handle.
Definition data.h:171
Simple pair of items for use in maps.
Definition data.h:201