aboutsummaryrefslogtreecommitdiff
path: root/src/ht.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ht.h')
-rw-r--r--src/ht.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/ht.h b/src/ht.h
new file mode 100644
index 0000000..ef15540
--- /dev/null
+++ b/src/ht.h
@@ -0,0 +1,29 @@
+#ifndef HT_H_
+#define HT_H_
+
+#include <stdbool.h>
+
+typedef struct hash_table ht_t;
+
+struct kvp {
+ char *key;
+ void *val;
+};
+
+// construct and destructor
+ht_t *ht_create(int size);
+void ht_destroy(ht_t *h);
+
+// accessors
+void *ht_find(ht_t *h, char *key);
+void ht_insert(ht_t *h, char *key, void *val);
+void ht_delete(ht_t *h, char *key);
+
+// queries
+int ht_size(ht_t *h);
+
+// iterator
+void ht_iter_init(ht_t *h);
+struct kvp ht_iter_next(ht_t *h);
+
+#endif // HT_H_