summaryrefslogtreecommitdiff
path: root/lib/util/set.h
diff options
context:
space:
mode:
authorBenedict <benedict@0xb8000.de>2017-02-02 00:32:26 +0100
committerBenedict <benedict@0xb8000.de>2017-02-21 13:00:27 +0100
commit1fd84c7dc70a0a6e6d8651fafa50c51dd697ae77 (patch)
treeaf5de3c7952e071c8e27800c41d9f945fa86c9e7 /lib/util/set.h
parent9dcc7348ad53cab8fd9396699de0177bac6729d5 (diff)
added random stuff which hasn't beend added because yeah
Diffstat (limited to 'lib/util/set.h')
-rw-r--r--lib/util/set.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/util/set.h b/lib/util/set.h
new file mode 100644
index 0000000..bd05351
--- /dev/null
+++ b/lib/util/set.h
@@ -0,0 +1,39 @@
+#ifndef __SET_H__
+#define __SET_H__
+#include <stdlib.h>
+#include "hashtable.h"
+
+/**
+ * implementation of a set based on a hashtable implementation
+ *
+ **/
+
+typedef struct hashtable set_t;
+
+void set_init(set_t *set)
+{
+ ht_init_sha1(set);
+}
+
+
+void set_insert(set_t *set, void *data, unsigned int data_length)
+{
+ ht_add(set, data, data_length, data, data_length);
+}
+
+unsigned int set_is_in_set(set_t *set, void *data, unsigned int data_length)
+{
+ if(ht_get(set, data, data_length) == NULL)
+ return 0;
+ else
+ return 1;
+}
+
+void set_delete(set_t *set, void *data, unsigned int data_length)
+{
+ ht_delete(set, data, data_length);
+}
+
+#define SET_FOR_EACH
+
+#endif