You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Feature/fast iteration (#5)
* Add lookupGE, ForwardCursor, and Seq leaf-safe optimization
lookupGE: O(log n) ceiling lookup with zero allocations. Returns the
first stored element >= key, or nil.
ForwardCursor: mutable forward-only cursor for efficient sequential
ceiling lookups. Amortized O(1) per seekGE when keys arrive in
ascending order. Supports next() for O(1) sequential advance and
current() for non-advancing read.
Seq leafSafe: skips per-element comparator bounds check when the
entire current leaf is within the iteration range.
Also adds searchFirstFrom to ANode (binary search with lower bound
hint) and CLJS lookup-ge support.
* Fix CLJS type inference warnings in branch and btset
Add ^Branch type hints to merge/merge-split params, ^BTSet to helper
functions, and ^js/^BTSet to seek's seq field access to eliminate
"Cannot infer target type" warnings during CLJS compilation.
* Remove lookupGE/ForwardCursor from public Clojure API
Keep Java methods for internal use by datahike but do not expose
them in the Clojure namespace. Mark lookupGE, ForwardCursor, and
forwardCursor() as internal API subject to change in Javadoc.
Tests updated to use interop directly via a local helper.