1#![cfg_attr(not(feature = "std"), no_std)]
9#![crate_type = "lib"]
10#![doc(
11 html_logo_url = "https://raw.githubusercontent.com/scattered-systems/.github/main/assets/logo.png",
12 html_favicon_url = "https://raw.githubusercontent.com/scattered-systems/.github/main/assets/favicon.ico"
13)]
14#![cfg(feature = "std")]
15#[doc(no_inline)]
16#[cfg(feature = "config")]
17pub use config;
18
19#[macro_use]
20pub(crate) mod macros {
21 #[macro_use]
22 pub mod config;
23 #[macro_use]
24 pub mod seal;
25}
26
27#[doc(inline)]
28pub use self::{
29 consts::*, error::*, services::prelude::*, traits::prelude::*, types::prelude::*,
30 utils::prelude::*,
31};
32pub mod error;
34pub mod services;
35
36pub mod consts {
38 pub const DEFAULT_ENV_PREFIX: &str = "APP";
40 pub const DEFAULT_ENV_SEPARATOR: &str = "_";
42 pub const ARTIFACTS: &str = ".artifacts";
44 pub const CACHE_DIR: &str = ".cache";
46 pub const CONFIG_DIR: &str = ".config";
48}
49
50pub mod traits {
52 #[doc(inline)]
53 pub use self::prelude::*;
54
55 pub mod configure;
56
57 pub(crate) mod prelude {
58 #[doc(inline)]
59 pub use super::configure::*;
60 }
61}
62pub mod types {
64 #[doc(inline)]
65 pub use self::prelude::*;
66
67 pub mod environment;
68 pub mod log_level;
69 pub mod mode;
70 pub mod network_address;
71 pub mod scope;
72
73 pub(crate) mod prelude {
74 #[doc(inline)]
75 pub use super::environment::*;
76 #[doc(inline)]
77 pub use super::log_level::*;
78 #[doc(inline)]
79 pub use super::mode::*;
80 #[doc(inline)]
81 pub use super::network_address::*;
82 #[doc(inline)]
83 pub use super::scope::*;
84 }
85}
86
87pub mod utils {
88 #[doc(inline)]
89 pub use self::prelude::*;
90
91 pub mod fs;
92 pub mod vars;
93
94 pub(crate) mod prelude {
95 #[allow(unused_imports)]
96 #[doc(inline)]
97 pub use super::fs::*;
98 #[doc(inline)]
99 pub use super::vars::*;
100 }
101}
102
103pub mod prelude {
104 #[doc(no_inline)]
105 pub use crate::consts::*;
106 #[doc(no_inline)]
107 pub use crate::error::*;
108 #[doc(no_inline)]
109 pub use crate::services::prelude::*;
110 #[doc(no_inline)]
111 pub use crate::types::prelude::*;
112 #[doc(no_inline)]
113 pub use crate::utils::prelude::*;
114}