blob: 3bde74f3ada2b941243b6d0021131a9882a610e2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#ifndef HTABLE_H_
#define HTABLE_H_
#include <stdbool.h>
#include <stdint.h>
typedef struct {
void *buf;
int size;
int cap;
int taken;
void* begin;
int elemsz;
uint32_t (*hash)(void*);
bool (*eq)(void*, void*);
} HTable;
void htable_init(HTable *ht, int elemsz, int cap, uint32_t (*hash)(void*),
bool (*eq)(void*, void*));
bool htable_insert(HTable *ht, void* elem);
void htable_del(HTable *ht, void* iter);
// return a iterator
void* htable_find(HTable *ht, void* elem);
void* htable_begin(HTable *ht);
void* htable_next(HTable *ht, void *iter);
#endif
|