feat(lsm): write str tests; start trie tests

This commit is contained in:
Jef Roosens 2023-10-14 14:33:22 +02:00
parent 87000e8f73
commit ef8129b8eb
Signed by: Jef Roosens
GPG key ID: B75D4F293C7052DB
7 changed files with 441 additions and 52 deletions

View file

@ -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;
}