mod build;
mod builder2d;
mod builder3d;
mod config;
mod geometry;
mod hilbert2d;
mod index2d;
#[cfg(feature = "simd")]
mod index2d_soa;
mod index3d;
#[cfg(feature = "simd")]
mod index3d_soa;
mod neighbors;
mod persistence;
mod sort2d;
mod sort3d;
mod traversal;
mod tree;
pub use build::BuildError;
pub use builder2d::Index2DBuilder;
pub use builder3d::Index3DBuilder;
pub use config::DEFAULT_NODE_SIZE;
#[cfg(feature = "parallel")]
pub use config::DEFAULT_PARALLEL_MIN_ITEMS;
pub use geometry::{BoundsError, Box2D, Box3D, Point2D, Point3D};
pub use index2d::{Index2D, Index2DView};
#[cfg(feature = "simd")]
pub use index2d_soa::{SimdIndex2D, SimdIndex2DView};
pub use index3d::{Index3D, Index3DView};
#[cfg(feature = "simd")]
pub use index3d_soa::{SimdIndex3D, SimdIndex3DView};
pub use neighbors::NeighborWorkspace;
pub use persistence::LoadError;
pub use sort2d::SortKey2D;
pub use sort3d::SortKey3D;
pub use traversal::SearchWorkspace;
#[doc(hidden)]
pub mod experimental {
pub use crate::hilbert2d::{
ENCODERS, HilbertFn, loop_rotation, lut, magic_bits, magic_bits_batch, morton,
};
pub use crate::sort2d::{ExperimentalSortKey2D, radix_sort_pairs};
pub use crate::sort3d::{
ExperimentalSortKey3D, encode_hilbert3_nibble_lut, encode_hilbert3_pair_lut,
encode_morton3, radix_sort_pairs_u64,
};
}