Files
ec3/src/string-table.h

27 lines
531 B
C
Raw Normal View History

#ifndef STRING_TABLE_H_
#define STRING_TABLE_H_
#include <blue/core/btree.h>
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