aboutsummaryrefslogtreecommitdiff
path: root/include/ht.h
diff options
context:
space:
mode:
authorJacob Janzen <jacob.a.s.janzen@gmail.com>2024-02-14 12:01:03 -0600
committerJacob Janzen <jacob.a.s.janzen@gmail.com>2024-02-14 12:01:03 -0600
commitb5b4a5d66deefa3858bedf7bc58e6c96340e829b (patch)
tree4aa42f746be3c6ce409938796ca95175dfd1da86 /include/ht.h
parent8bd664e467f760db6f689eb9d30c3d685abe6de5 (diff)
major refactor
Diffstat (limited to 'include/ht.h')
-rw-r--r--include/ht.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/include/ht.h b/include/ht.h
new file mode 100644
index 0000000..ef15540
--- /dev/null
+++ b/include/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_