Skip to main content

Module node_store

Module node_store 

Source
Expand description

Flat-array node storage with O(1) allocation and deallocation.

Internal nodes live in internals[0..capacity), leaves live in leaves[0..capacity). Each arena owns its own free list (LIFO stack of freed slot indices) so allocations reuse the most-recently freed slot first — which keeps the live working set compact and cache-friendly.

Bounding-box semantics: only internal nodes carry a cached bounding box. Leaves know their point only through point_idx into the crate::forest::PointStore; when a caller needs a leaf bounding box it builds a degenerate one from the point itself. This keeps leaf storage at 24 bytes (idx + parent + mass) instead of duplicating per-leaf coordinate data, saving ~6 MB at default configuration.

Structs§

NodeStore
Flat-array storage for NodeRef-addressed nodes with O(1) allocation and deallocation via per-arena free lists.