#![no_std]
#![allow(clippy::while_let_on_iterator)]
#![allow(clippy::comparison_chain)]
mod arena;
pub use arena::arena_iterators;
mod chain;
mod ord;
mod traits;
pub use chain::{chain_iterators, ChainArena, Link};
#[cfg(feature = "serde_support")]
pub use traits::serde;
pub use traits::{Advancer, ArenaTrait, Ptr};
mod surject;
pub use arena::Arena;
pub use ord::{ord_iterators, OrdArena};
pub use recasting::{Recast, Recaster};
pub use surject::{surject_iterators, SurjectArena};
pub mod utils {
#[cfg(feature = "expose_internal_utils")]
pub use crate::arena::InternalEntry;
#[cfg(feature = "expose_internal_utils")]
pub use crate::arena::NonZeroInxVec;
#[cfg(not(feature = "expose_internal_utils"))]
pub(crate) use crate::arena::NonZeroInxVec;
#[cfg(feature = "expose_internal_utils")]
pub use crate::ord::Node;
pub(crate) use crate::{arena::nzusize_unchecked, traits::ptrinx_unchecked};
pub use crate::{
chain::{chain_no_gen_iterators, ChainNoGenArena, LinkNoGen},
traits::{PtrGen, PtrInx, PtrNoGen},
};
#[cfg(feature = "serde_support")]
pub mod serde {
pub use serde::{Deserialize, Deserializer, Serialize, Serializer};
}
}
extern crate alloc;