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