1#![deny(missing_docs)]
4#![cfg_attr(not(feature = "std"), no_std)]
5#![cfg_attr(docsrs, feature(doc_cfg))]
6
7#[cfg(feature = "alloc")]
8#[macro_use]
9extern crate alloc;
10
11#[macro_use]
12pub mod macros;
13
14pub mod slice;
15
16pub mod iter;
17
18#[doc(inline)]
19pub use slice::{EmptySlice, NonEmptyBytes, NonEmptySlice};
20
21cfg_select! {
22 any(feature = "std", feature = "alloc") => {
23 pub mod boxed;
24 pub mod vec;
25 pub mod cow;
26
27 #[doc(inline)]
28 pub use boxed::{EmptyBoxedBytes, EmptyBoxedSlice, NonEmptyBoxedBytes, NonEmptyBoxedSlice};
29
30 #[doc(inline)]
31 pub use vec::{EmptyByteVec, EmptyVec, NonEmptyByteVec, NonEmptyVec};
32
33 #[doc(inline)]
34 pub use cow::NonEmptyCowSlice;
35
36 pub(crate) mod internals;
37 }
38 _ => {}
39}
40
41pub(crate) mod cmp;
42
43#[cfg(feature = "std")]
44pub(crate) mod io;
45
46#[cfg(feature = "ownership")]
47pub(crate) mod ownership;
48
49#[cfg(feature = "serde")]
50pub(crate) mod serde;