#ifndef STRING_TABLE_H_ #define STRING_TABLE_H_ #include struct string_table_entry { b_btree_node e_hash_node; b_btree_node e_offset_node; size_t e_hash; size_t e_offset; char e_str[]; }; struct string_table { b_btree s_hash_tree; b_btree s_offset_tree; size_t s_next_offset; size_t s_nr_entries; }; extern void string_table_init(struct string_table *out); extern void string_table_finish(struct string_table *tab); extern size_t string_table_get(struct string_table *tab, const char *s); #endif