mtbl_iter - iterate over a sequence of key-value pairs
mtbl_res mtbl_iter_next(struct mtbl_iter *it,
const uint8_t **key, size_t *len_key,
const uint8_t **val, size_t *len_val);
void mtbl_iter_destroy(struct mtbl_iter **it);
mtbl_res mtbl_iter_seek(struct mtbl_iter *it,
const uint8_t **key, size_t *len_key);
The mtbl_iter interface is used to return a sequence of one or more key-value pairs. Once the caller obtains an mtbl_iter object, mtbl_iter_next() should be repeatedly called on it until there are no more key-value entries to retrieve, at which point the iterator object must be freed by calling mtbl_iter_destroy(). mtbl_iter_seek() can be called on the iterator to seek to a different location in the index without having to destroy the iterator and create a new one.
mtbl_iter_next() returns mtbl_res_success if a key-value entry was successfully retrieved, in which case key and val will point to buffers of length len_key and len_val respectively. The value mtbl_res_failure is returned if there are no more entries to read, or if the it argument is NULL.