summaryrefslogtreecommitdiffhomepage
path: root/src/hsearch.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/hsearch.h')
-rw-r--r--src/hsearch.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/hsearch.h b/src/hsearch.h
new file mode 100644
index 0000000..ec81cc3
--- /dev/null
+++ b/src/hsearch.h
@@ -0,0 +1,21 @@
+#ifndef HSEARCH_H
+#define HSEARCH_H
+
+#include <stdlib.h>
+
+typedef union htab_value {
+ void *p;
+ size_t n;
+} htab_value;
+
+#define HTV_N(N) (htab_value) {.n = N}
+#define HTV_P(P) (htab_value) {.p = P}
+
+struct htab * htab_create(size_t);
+void htab_destroy(struct htab *);
+htab_value* htab_find(struct htab *, const char* key);
+int htab_insert(struct htab *, char*, htab_value);
+int htab_delete(struct htab *htab, const char* key);
+size_t htab_next(struct htab *, size_t iterator, char** key, htab_value **v);
+
+#endif