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
15#![cfg(feature = "std")]
16#[doc(no_inline)]
17#[cfg(feature = "config")]
18pub use config;
19
20#[macro_use]
21pub(crate) mod macros {
22 #[macro_use]
23 pub mod config;
24 #[macro_use]
25 pub mod seal;
26}
27
28#[doc(inline)]
29pub use self::{
30 consts::*, error::*, services::prelude::*, traits::prelude::*, types::prelude::*,
31 utils::prelude::*,
32};
33pub mod error;
35pub mod services;
36
37pub mod consts {
39 pub const DEFAULT_ENV_PREFIX: &str = "APP";
41 pub const DEFAULT_ENV_SEPARATOR: &str = "_";
43 pub const ARTIFACTS: &str = ".artifacts";
45 pub const CACHE_DIR: &str = ".cache";
47 pub const CONFIG_DIR: &str = ".config";
49}
50
51pub mod traits {
53 #[doc(inline)]
54 pub use self::prelude::*;
55
56 pub mod configure;
57
58 pub(crate) mod prelude {
59 #[doc(inline)]
60 pub use super::configure::*;
61 }
62}
63pub mod types {
65 #[doc(inline)]
66 pub use self::prelude::*;
67
68 pub mod environment;
69 pub mod log_level;
70 pub mod mode;
71 pub mod network_address;
72 pub mod scope;
73
74 pub(crate) mod prelude {
75 #[doc(inline)]
76 pub use super::environment::*;
77 #[doc(inline)]
78 pub use super::log_level::*;
79 #[doc(inline)]
80 pub use super::mode::*;
81 #[doc(inline)]
82 pub use super::network_address::*;
83 #[doc(inline)]
84 pub use super::scope::*;
85 }
86}
87
88pub mod utils {
89 #[doc(inline)]
90 pub use self::prelude::*;
91
92 pub mod fs;
93 pub mod vars;
94
95 pub(crate) mod prelude {
96 #[allow(unused_imports)]
97 #[doc(inline)]
98 pub use super::fs::*;
99 #[doc(inline)]
100 pub use super::vars::*;
101 }
102}
103
104pub mod prelude {
105 #[doc(no_inline)]
106 pub use crate::consts::*;
107 #[doc(no_inline)]
108 pub use crate::error::*;
109 #[doc(no_inline)]
110 pub use crate::services::prelude::*;
111 #[doc(no_inline)]
112 pub use crate::types::prelude::*;
113 #[doc(no_inline)]
114 pub use crate::utils::prelude::*;
115}