]>
Commit | Line | Data |
---|---|---|
e8fd8fec | 1 | #pragma once |
529148ea | 2 | |
8d1278d0 LDM |
3 | #include <stdbool.h> |
4 | ||
529148ea | 5 | struct hash; |
8d1278d0 LDM |
6 | |
7 | struct hash_iter { | |
8 | const struct hash *hash; | |
9 | unsigned int bucket; | |
10 | unsigned int entry; | |
11 | }; | |
12 | ||
529148ea LDM |
13 | struct hash *hash_new(unsigned int n_buckets, void (*free_value)(void *value)); |
14 | void hash_free(struct hash *hash); | |
15 | int hash_add(struct hash *hash, const char *key, const void *value); | |
16 | int hash_add_unique(struct hash *hash, const char *key, const void *value); | |
17 | int hash_del(struct hash *hash, const char *key); | |
18 | void *hash_find(const struct hash *hash, const char *key); | |
19 | unsigned int hash_get_count(const struct hash *hash); | |
8d1278d0 LDM |
20 | void hash_iter_init(const struct hash *hash, struct hash_iter *iter); |
21 | bool hash_iter_next(struct hash_iter *iter, const char **key, | |
22 | const void **value); |