aboutsummaryrefslogtreecommitdiff
path: root/hash.h
diff options
context:
space:
mode:
Diffstat (limited to 'hash.h')
-rw-r--r--hash.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/hash.h b/hash.h
new file mode 100644
index 00000000..2a095cfd
--- /dev/null
+++ b/hash.h
@@ -0,0 +1,30 @@
+#ifndef HASH_H
+#define HASH_H
+
+#include <string.h>
+
+#include "macro.h"
+
+unsigned long hash(char*);
+
+#define TABLE(T) TP(table_, T)
+#define HASH_PUT(T) TP(hash_put_, T)
+#define HASH_GET(T) TP(hash_get_, T)
+#define HASH_INIT(T) TP(hash_init_, T)
+
+#endif /* HASH_H */
+#ifdef TYPE
+
+typedef struct {
+ int size;
+ int item_count;
+ TYPE* values;
+} TABLE(TYPE);
+
+int HASH_PUT(TYPE) ( TABLE(TYPE)* table, TYPE* value );
+
+int HASH_INIT(TYPE) ( TABLE(TYPE)* table, int init_size );
+
+TYPE* HASH_GET(TYPE) ( TABLE(TYPE)* table, char* key );
+
+#endif /* HASH_H */