#ifndef __SMCC_HASHTABLE_H__ #define __SMCC_HASHTABLE_H__ #include typedef struct hash_node { const char* str; int len; u32_t hash; struct hash_node* next; } hash_node_t; typedef struct hash_table { hash_node_t** buckets; int size; int cap; int max_cap; } hash_table_t; hash_table_t* new_hash_table(int init_size, int max_cap); void hash_table_init(hash_table_t* ht, int init_size, int max_cap); void hash_table_destroy(hash_table_t* ht); void hash_table_insert(hash_table_t* ht, const char* str, int len); hash_node_t* hash_table_find(hash_table_t* ht, const char* str, int len); #endif // __SMCC_HASHTABLE_H__