1#![no_std]
4#![allow(clippy::while_let_on_iterator)]
6#![allow(clippy::comparison_chain)]
7
8mod arena;
9pub use arena::arena_iterators;
10mod chain;
11mod ord;
12mod traits;
13pub use chain::{chain_iterators, ChainArena, Link};
14#[cfg(feature = "serde_support")]
16pub use traits::serde;
17pub use traits::{Advancer, ArenaTrait, Ptr};
18mod surject;
19pub use arena::Arena;
21pub use ord::{ord_iterators, OrdArena};
22pub use recasting::{Recast, Recaster};
23pub use surject::{surject_iterators, SurjectArena};
24pub mod utils {
26 #[cfg(feature = "expose_internal_utils")]
27 pub use crate::arena::InternalEntry;
28 #[cfg(feature = "expose_internal_utils")]
29 pub use crate::arena::NonZeroInxVec;
30 #[cfg(not(feature = "expose_internal_utils"))]
31 pub(crate) use crate::arena::NonZeroInxVec;
32 #[cfg(feature = "expose_internal_utils")]
34 pub use crate::ord::Node;
35 pub(crate) use crate::{arena::nzusize_unchecked, traits::ptrinx_unchecked};
36 pub use crate::{
37 chain::{chain_no_gen_iterators, ChainNoGenArena, LinkNoGen},
38 traits::{PtrGen, PtrInx, PtrNoGen},
39 };
40 #[cfg(feature = "serde_support")]
42 pub mod serde {
43 pub use serde::{Deserialize, Deserializer, Serialize, Serializer};
44 }
45}
46
47extern crate alloc;