kermit-iters
Core iterator traits for the Kermit workspace. This crate has zero internal dependencies and sits at the root of the dependency graph — every other crate builds on the abstractions defined here.
What lives here
LinearIterator— sorted sequential iteration over a flat level. Methods:key,next,seek,at_end.TrieIterator— extendsLinearIteratorwithopen(descend to child level) andup(ascend to parent). The fundamental abstraction consumed by Leapfrog Triejoin.LinearIterable/TrieIterable— traits implemented by data structures that can produce such iterators.TrieIteratorWrapper— adapts anyTrieIteratorinto a standardIterator<Item = Vec<usize>>via depth-first traversal, optionally filtered by arity.JoinIterable— marker trait that both iterator traits extend; unifies types consumable bykermit-algos.Key— canonicalusizekey alias used throughout the workspace.
Design rationale
See ARCHITECTURE.md for the full trait hierarchy discussion. In short: decoupling the iterator traits from any specific data structure lets algorithms in kermit-algos work over any compatible trie implementation (TreeTrie, ColumnTrie, or a future addition) without modification.