#[cfg(feature = "alloc")]
mod impl_alloc;
#[cfg(feature = "alloc")]
pub use self::impl_alloc::*;

#[cfg(feature = "std")]
mod impl_std;
#[cfg(feature = "std")]
pub use self::impl_std::*;

#[cfg(feature = "derive")]
mod derive;
#[cfg(feature = "derive")]
pub use self::derive::*;

#[cfg(feature = "serde")]
#[cfg_attr(docsrs, doc(cfg(feature = "serde")))]
pub mod serde;

/// Relative pointer system for zero-copy nested structures
#[cfg(feature = "zero-copy")]
#[doc(hidden)]
pub mod relative_ptr;

#[cfg(feature = "static-size")]
pub mod bounded;
#[cfg(feature = "static-size")]
pub mod static_size;
