| 184 | #define RAX_ITER_INLINE_LEAF (1<<3) /* Iterator is positioned on an inline |
| 185 | leaf stored in the current parent. */ |
| 186 | typedef struct raxIterator { |
| 187 | int flags; |
| 188 | rax *rt; /* Radix tree we are iterating. */ |
| 189 | unsigned char *key; /* The current string. */ |
| 190 | void *data; /* Data associated to this key. */ |
| 191 | size_t key_len; /* Current key length. */ |
| 192 | size_t key_max; /* Max key len the current key buffer can hold. */ |
| 193 | unsigned char key_static_string[RAX_ITER_STATIC_LEN]; |
| 194 | raxNode *node; /* Current node, or the parent node if the |
| 195 | iterator is on an inline leaf. */ |
| 196 | int node_child; /* Cached child index of the current node in its |
| 197 | parent, or of the inline leaf in 'node'. |
| 198 | -1 if unknown. */ |
| 199 | raxStack stack; /* Stack used for unsafe iteration. */ |
| 200 | raxNodeCallback node_cb; /* Optional node callback. Normally set to NULL. */ |
| 201 | } raxIterator; |
| 202 | |
| 203 | /* Defragmentation iterator. Unlike the normal iterator, this iterator scans |
| 204 | * the radix tree structure itself, yielding both real raxNode allocations and |
nothing calls this directly
no outgoing calls
no test coverage detected