void case_dict_iter() { struct dict *dict = dict(); char *key1 = "key1"; size_t len1 = 4; char *key2 = "key2"; size_t len2 = 4; char *key3 = "key3"; size_t len3 = 4; char *key4 = "key4"; size_t len4 = 4; char *key5 = "key5"; size_t len5 = 4; char *key6 = "key6"; size_t len6 = 4; assert(dict_set(dict, key1, len1, "val1") == DICT_OK); assert(dict_set(dict, key2, len2, "val2") == DICT_OK); assert(dict_set(dict, key3, len3, "val3") == DICT_OK); assert(dict_set(dict, key4, len4, "val4") == DICT_OK); assert(dict_set(dict, key5, len5, "val5") == DICT_OK); assert(dict_set(dict, key6, len6, "val6") == DICT_OK); struct dict_iter *iter = dict_iter(dict); assert(dict_iter_next(iter) != NULL); assert(dict_iter_next(iter) != NULL); assert(dict_iter_next(iter) != NULL); assert(dict_iter_next(iter) != NULL); assert(dict_iter_next(iter) != NULL); assert(dict_iter_next(iter) != NULL); assert(dict_iter_next(iter) == NULL); dict_iter_free(iter); dict_free(dict); }
static void fts_cat_index(fts_t *fts) { dict_iterator_t *iter; iter = dict_iter_create(fts->index); while (dict_iter_hasnext(iter)) { dict_kv_t kv = dict_iter_next(iter); rr_debug("key: %s", kv.key); list *l = kv.value; listIter *liter = listGetIterator(l, AL_START_HEAD); listNode *node; while((node = listNext(liter)) != NULL) { index_item_t *item = node->value; rr_debug("doc title: %s, tf: %d", (char *) item->doc->title->ptr, item->tf); } listReleaseIterator(liter); } dict_iter_free(iter); }