diff options
Diffstat (limited to 'src/hashtable.h')
| -rw-r--r-- | src/hashtable.h | 14 |
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 |
