Libecoli  0.11.3
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 
21 typedef void (*ec_dict_elt_free_t)(void *);
22 
24 struct ec_dict;
25 
27 struct ec_dict_elt_ref;
28 
35 struct ec_dict *ec_dict(void);
36 
49 void *ec_dict_get(const struct ec_dict *dict, const char *key);
50 
62 bool ec_dict_has_key(const struct ec_dict *dict, const char *key);
63 
74 int ec_dict_del(struct ec_dict *dict, const char *key);
75 
92 int ec_dict_set(struct ec_dict *dict, const char *key, void *val, ec_dict_elt_free_t free_cb);
93 
100 void ec_dict_free(struct ec_dict *dict);
101 
110 size_t ec_dict_len(const struct ec_dict *dict);
111 
124 struct ec_dict *ec_dict_dup(const struct ec_dict *dict);
125 
134 void ec_dict_dump(FILE *out, const struct ec_dict *dict);
135 
156 struct ec_dict_elt_ref *ec_dict_iter(const struct ec_dict *dict);
157 
166 struct ec_dict_elt_ref *ec_dict_iter_next(struct ec_dict_elt_ref *iter);
167 
177 const char *ec_dict_iter_get_key(const struct ec_dict_elt_ref *iter);
178 
188 void *ec_dict_iter_get_val(const struct ec_dict_elt_ref *iter);
189 
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)
void(* ec_dict_elt_free_t)(void *)
Definition: dict.h:21
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)