Libecoli
0.11.5
Extensible COmmand LIne library
Toggle main menu visibility
Loading...
Searching...
No Matches
htable.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 <stdint.h>
19
#include <stdio.h>
20
22
typedef
void (*
ec_htable_elt_free_t
)(
void
*);
23
25
struct
ec_htable
;
26
28
struct
ec_htable_elt_ref;
29
36
struct
ec_htable
*
ec_htable
(
void
);
37
51
void
*
ec_htable_get
(
const
struct
ec_htable
*htable,
const
void
*key,
size_t
key_len);
52
65
bool
ec_htable_has_key
(
const
struct
ec_htable
*htable,
const
void
*key,
size_t
key_len);
66
79
int
ec_htable_del
(
struct
ec_htable
*htable,
const
void
*key,
size_t
key_len);
80
99
int
ec_htable_set
(
100
struct
ec_htable
*htable,
101
const
void
*key,
102
size_t
key_len,
103
void
*val,
104
ec_htable_elt_free_t
free_cb
105
);
106
113
void
ec_htable_free
(
struct
ec_htable
*htable);
114
123
size_t
ec_htable_len
(
const
struct
ec_htable
*htable);
124
137
struct
ec_htable
*
ec_htable_dup
(
const
struct
ec_htable
*htable);
138
147
void
ec_htable_force_seed
(uint32_t seed);
148
157
void
ec_htable_dump
(FILE *out,
const
struct
ec_htable
*htable);
158
179
struct
ec_htable_elt_ref *
ec_htable_iter
(
const
struct
ec_htable
*htable);
180
189
struct
ec_htable_elt_ref *
ec_htable_iter_next
(
struct
ec_htable_elt_ref *iter);
190
200
const
void
*
ec_htable_iter_get_key
(
const
struct
ec_htable_elt_ref *iter);
201
211
size_t
ec_htable_iter_get_key_len
(
const
struct
ec_htable_elt_ref *iter);
212
222
void
*
ec_htable_iter_get_val
(
const
struct
ec_htable_elt_ref *iter);
223
ec_htable_has_key
bool ec_htable_has_key(const struct ec_htable *htable, const void *key, size_t key_len)
ec_htable_force_seed
void ec_htable_force_seed(uint32_t seed)
ec_htable_iter_next
struct ec_htable_elt_ref * ec_htable_iter_next(struct ec_htable_elt_ref *iter)
ec_htable_elt_free_t
void(* ec_htable_elt_free_t)(void *)
Definition
htable.h:22
ec_htable
struct ec_htable * ec_htable(void)
ec_htable_iter_get_val
void * ec_htable_iter_get_val(const struct ec_htable_elt_ref *iter)
ec_htable_free
void ec_htable_free(struct ec_htable *htable)
ec_htable_dup
struct ec_htable * ec_htable_dup(const struct ec_htable *htable)
ec_htable_iter_get_key_len
size_t ec_htable_iter_get_key_len(const struct ec_htable_elt_ref *iter)
ec_htable_set
int ec_htable_set(struct ec_htable *htable, const void *key, size_t key_len, void *val, ec_htable_elt_free_t free_cb)
ec_htable_get
void * ec_htable_get(const struct ec_htable *htable, const void *key, size_t key_len)
ec_htable_iter_get_key
const void * ec_htable_iter_get_key(const struct ec_htable_elt_ref *iter)
ec_htable_iter
struct ec_htable_elt_ref * ec_htable_iter(const struct ec_htable *htable)
ec_htable_del
int ec_htable_del(struct ec_htable *htable, const void *key, size_t key_len)
ec_htable_dump
void ec_htable_dump(FILE *out, const struct ec_htable *htable)
ec_htable_len
size_t ec_htable_len(const struct ec_htable *htable)
ecoli
htable.h
Generated by
1.17.0