devela/text/str/
mod.rs

1// devela::text::str
2//
3//! String types and related functionality.
4//!
5#![doc = crate::doc_!(extends: str, string)]
6
7mod reexports;
8mod macros; // str!, strjoin!
9
10#[cfg(feature = "str")]
11mod ext_str; // ExtStr
12#[cfg(feature = "str")]
13mod namespace; // Str
14
15#[cfg(all(feature = "str", feature = "alloc"))]
16mod ext_string;
17#[cfg(feature = "_str_nonul")] // RETHINK
18#[cfg_attr(feature = "nightly_doc", doc(cfg(feature = "_str_nonul")))]
19mod nonul;
20#[cfg(_str_u··)]
21mod string_u;
22
23crate::items! { // structural access: _mods, _all, _always
24    #[allow(unused)]
25    pub use _mods::*;
26    #[allow(unused)] #[doc(hidden, no_inline)]
27    pub use _always::*;
28
29    mod _mods {
30        pub use super::reexports::*;
31
32        #[cfg(feature = "str")]
33        #[cfg_attr(feature = "nightly_doc", doc(cfg(feature = "str")))]
34        pub use super::{ext_str::*, namespace::*};
35        #[cfg(all(feature = "str", feature = "alloc"))]
36        #[cfg_attr(feature = "nightly_doc", doc(cfg(feature = "str")))]
37        pub use super::ext_string::*;
38
39        #[cfg(feature = "_str_nonul")] // RETHINK
40        pub use super::nonul::*;
41        #[cfg(_str_u··)]
42        pub use super::string_u::*;
43
44        #[doc(inline)]
45        pub use super::macros::*;
46    }
47    pub(super) mod _all {
48        #[doc(inline)]
49        pub use super::_mods::*;
50    }
51    pub(super) mod _always { #![allow(unused)]
52        pub use super::reexports::*;
53    }
54}