Libecoli  0.10.1
Extensible COmmand LIne library
dict.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright 2016, Olivier MATZ <zer0@droids-corp.org>
3  */
4 
15 #pragma once
16 
17 #include <stdbool.h>
18 #include <stdio.h>
19 
20 typedef void (*ec_dict_elt_free_t)(void *);
21 
23 struct ec_dict;
24 
26 struct ec_dict_elt_ref;
27 
34 struct ec_dict *ec_dict(void);
35 
47 void *ec_dict_get(const struct ec_dict *dict, const char *key);
48 
59 bool ec_dict_has_key(const struct ec_dict *dict, const char *key);
60 
71 int ec_dict_del(struct ec_dict *dict, const char *key);
72 
89 int ec_dict_set(struct ec_dict *dict, const char *key, void *val, ec_dict_elt_free_t free_cb);
90 
97 void ec_dict_free(struct ec_dict *dict);
98 
107 size_t ec_dict_len(const struct ec_dict *dict);
108 
121 struct ec_dict *ec_dict_dup(const struct ec_dict *dict);
122 
131 void ec_dict_dump(FILE *out, const struct ec_dict *dict);
132 
151 struct ec_dict_elt_ref *ec_dict_iter(const struct ec_dict *dict);
152 
161 struct ec_dict_elt_ref *ec_dict_iter_next(struct ec_dict_elt_ref *iter);
162 
172 const char *ec_dict_iter_get_key(const struct ec_dict_elt_ref *iter);
173 
183 void *ec_dict_iter_get_val(const struct ec_dict_elt_ref *iter);
184 
struct ec_dict_elt_ref * ec_dict_iter(const struct ec_dict *dict)
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_get(const struct ec_dict *dict, const char *key)
void ec_dict_free(struct ec_dict *dict)
const char * ec_dict_iter_get_key(const struct ec_dict_elt_ref *iter)
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)
struct ec_dict * ec_dict(void)
struct ec_dict * ec_dict_dup(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)