Module Leapfrog.Join
Parameters
Signature
include Flambda2_algorithms.Leapfrog.Iterator
val current : 'a t -> 'a optioncurrent it is the key at the current position of the iterator it, or None if the iterator is exhausted.
val advance : 'a t -> unitadvance it advances the iterator to the next key.
advance is a no-op on an exhausted iterator.
val seek : 'a t -> 'a -> unitseek it x moves the iterator to the least upper bound for x, i.e. the least key y such that y >= x, exhausting the iterator if no such key exists.
Note: Only keys greater than the current position are considered: seek does nothing if x is smaller than the current key.
val init : 'a t -> unitinit it resets it to the first key of a new iteration.
val accept : 'a t -> unitaccept it accepts the value associated with the current key, preparing the iterator at the next depth for iteration.
val equal_key : 'a t -> 'a -> 'a -> boolequal_key it is an equality function iterator keys.
val compare_key : 'a t -> 'a -> 'a -> intequal_key it is a comparison function on iterator keys.
val create : 'a Iterator.t list -> 'a tcreate iterators returns a new imperative iterator that iterates over the join of the keys in iterators using the leapfrog join algorithm. The keys of the returned iterator are those that are present in all of the iterators in iterators.
The trie navigation operations init and accept are delegated to the underlying iterators.