pub mod build_ext;
pub mod frozen_csr;
pub mod in_memory;
pub mod in_memory_det;
pub mod in_memory_oriented;
pub mod mutable;
pub mod oriented;
pub mod query_ext;
pub mod reserve;
pub mod sieve_ref;
pub mod sieve_trait;
pub mod strata;
pub mod traversal_iter;
pub use build_ext::SieveBuildExt;
pub use frozen_csr::{FrozenSieveCsr, freeze_csr, try_freeze_csr};
pub use in_memory::InMemorySieve;
pub use in_memory_det::InMemorySieveDeterministic;
pub use in_memory_oriented::InMemoryOrientedSieve;
pub use mutable::MutableSieve;
pub use oriented::{Orientation, OrientedSieve};
pub use query_ext::SieveQueryExt;
pub use reserve::SieveReserveExt;
pub use sieve_ref::SieveRef;
pub use sieve_trait::Sieve;
pub type ConeOrientation = i32;
pub type MeshSieve =
in_memory_oriented::InMemoryOrientedSieve<crate::topology::point::PointId, (), ConeOrientation>;
pub type OrientedMeshSieve<P = crate::topology::point::PointId, T = (), O = ConeOrientation> =
in_memory_oriented::InMemoryOrientedSieve<P, T, O>;
pub use traversal_iter::{
ClosureBothIter, ClosureBothIterRef, ClosureIter, ClosureIterRef, StarIter, StarIterRef,
};
use std::sync::Arc;
pub type InMemorySieveArc<P, T> = in_memory::InMemorySieve<P, Arc<T>>;
pub type InMemoryOrientedSieveArc<P, T, O = crate::topology::orientation::Sign> =
in_memory_oriented::InMemoryOrientedSieve<P, Arc<T>, O>;
pub type InMemoryStackArc<B, C, T> = crate::topology::stack::InMemoryStack<B, C, Arc<T>>;
pub type OrientedTriSieve<P, T> =
in_memory_oriented::InMemoryOrientedSieve<P, T, crate::topology::orientation::D3>;
pub type OrientedQuadSieve<P, T> =
in_memory_oriented::InMemoryOrientedSieve<P, T, crate::topology::orientation::D4>;
pub type OrientedSignSieve<P, T> =
in_memory_oriented::InMemoryOrientedSieve<P, T, crate::topology::orientation::Sign>;
#[cfg(test)]
mod tests;