Libecoli 0.5.0
Extensible COmmand LIne library
 
Loading...
Searching...
No Matches
ecoli_dict.h
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright 2016, Olivier MATZ <zer0@droids-corp.org>
3 */
4
14
15#ifndef ECOLI_KEYVAL_
16#define ECOLI_KEYVAL_
17
18#include <stdio.h>
19#include <stdbool.h>
20
21typedef void (*ec_dict_elt_free_t)(void *);
22
24struct ec_dict;
25
27struct ec_dict_elt_ref;
28
35struct ec_dict *ec_dict(void);
36
48void *ec_dict_get(const struct ec_dict *dict, const char *key);
49
60bool ec_dict_has_key(const struct ec_dict *dict, const char *key);
61
72int ec_dict_del(struct ec_dict *dict, const char *key);
73
90int ec_dict_set(struct ec_dict *dict, const char *key, void *val,
91 ec_dict_elt_free_t free_cb);
92
99void ec_dict_free(struct ec_dict *dict);
100
109size_t ec_dict_len(const struct ec_dict *dict);
110
123struct ec_dict *ec_dict_dup(const struct ec_dict *dict);
124
133void ec_dict_dump(FILE *out, const struct ec_dict *dict);
134
154struct ec_dict_elt_ref *
155ec_dict_iter(const struct ec_dict *dict);
156
165struct ec_dict_elt_ref *
166ec_dict_iter_next(struct ec_dict_elt_ref *iter);
167
177const char *
178ec_dict_iter_get_key(const struct ec_dict_elt_ref *iter);
179
189void *
190ec_dict_iter_get_val(const struct ec_dict_elt_ref *iter);
191
192#endif
193
size_t ec_dict_len(const struct ec_dict *dict)
bool ec_dict_has_key(const struct ec_dict *dict, const char *key)
void ec_dict_free(struct ec_dict *dict)
struct ec_dict * ec_dict(void)
void * ec_dict_iter_get_val(const struct ec_dict_elt_ref *iter)
struct ec_dict_elt_ref * ec_dict_iter_next(struct ec_dict_elt_ref *iter)
void * ec_dict_get(const struct ec_dict *dict, const char *key)
struct ec_dict * ec_dict_dup(const struct ec_dict *dict)
const char * ec_dict_iter_get_key(const struct ec_dict_elt_ref *iter)
struct ec_dict_elt_ref * ec_dict_iter(const struct ec_dict *dict)
int ec_dict_del(struct ec_dict *dict, const char *key)
void ec_dict_dump(FILE *out, const struct ec_dict *dict)
int ec_dict_set(struct ec_dict *dict, const char *key, void *val, ec_dict_elt_free_t free_cb)