feat(lsm): write str tests; start trie tests
This commit is contained in:
parent
87000e8f73
commit
ef8129b8eb
7 changed files with 441 additions and 52 deletions
|
|
@ -35,6 +35,8 @@ lsm_error lsm_trie_init(lsm_trie **ptr) {
|
|||
return lsm_error_ok;
|
||||
}
|
||||
|
||||
uint64_t lsm_trie_size(lsm_trie *trie) { return trie->size; }
|
||||
|
||||
lsm_error lsm_trie_insert(lsm_trie *trie, lsm_str *key, void *data) {
|
||||
// NULL is not allowed as a data value, as it's used to indicate a lack of
|
||||
// data
|
||||
|
|
@ -48,6 +50,7 @@ lsm_error lsm_trie_insert(lsm_trie *trie, lsm_str *key, void *data) {
|
|||
if (key_len == 0) {
|
||||
if (trie->root->data == NULL) {
|
||||
trie->root->data = data;
|
||||
trie->size++;
|
||||
|
||||
return lsm_error_ok;
|
||||
} else {
|
||||
|
|
@ -75,6 +78,8 @@ lsm_error lsm_trie_insert(lsm_trie *trie, lsm_str *key, void *data) {
|
|||
}
|
||||
|
||||
new_node->data = data;
|
||||
trie->size++;
|
||||
|
||||
lsm_str_substr(&new_node->skip, key, index + 1, key_len);
|
||||
|
||||
return lsm_bt_insert(&node->bt, c, new_node);
|
||||
|
|
@ -125,6 +130,7 @@ lsm_error lsm_trie_insert(lsm_trie *trie, lsm_str *key, void *data) {
|
|||
}
|
||||
|
||||
node->data = data;
|
||||
trie->size++;
|
||||
|
||||
return lsm_error_ok;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue