summaryrefslogtreecommitdiff
path: root/src/hashtable.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/hashtable.h')
-rw-r--r--src/hashtable.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/hashtable.h b/src/hashtable.h
index 43ab23a..3e4d9d9 100644
--- a/src/hashtable.h
+++ b/src/hashtable.h
@@ -5,15 +5,19 @@ typedef struct HashPair {
char* key;
void* value;
} pair_t;
-pair_t* init_pair(char* key, void* value);
+pair_t init_pair(char* key, void* value);
typedef struct HashTable {
- pair_t** pairs;
+ pair_t* pairs;
int capacity;
int itemCount;
+ struct HashTable* parent;
} hashtable_t;
-hashtable_t* init_hashtable(unsigned int capacity);
+hashtable_t* init_hashtable(unsigned int capacity, hashtable_t* parent);
+void destroy_hashtable(hashtable_t* hashtable);
+hashtable_t* clone_hashtable(hashtable_t* hashtable);
unsigned int get_hash(char* str);
-unsigned int hashtable_add_pair(hashtable_t* hashtable, pair_t* pair);
-pair_t* hashtable_get_pair(hashtable_t* hashtable, char* key);
+unsigned int hashtable_add_pair(hashtable_t* hashtable, pair_t pair);
+pair_t hashtable_get_pair(hashtable_t* hashtable, char* key);
+pair_t hashtable_get_pair_recurse(hashtable_t* origin, char* key);
#endif