1#![cfg_attr(docsrs, feature(doc_cfg))]
41#![deny(missing_docs)]
42#![deny(unsafe_code)]
43#![warn(clippy::all)]
44
45#[cfg(feature = "config")]
46#[cfg_attr(docsrs, doc(cfg(feature = "config")))]
47pub mod config;
48
49#[cfg(feature = "error")]
50#[cfg_attr(docsrs, doc(cfg(feature = "error")))]
51pub mod error;
52
53#[cfg(feature = "logging")]
54#[cfg_attr(docsrs, doc(cfg(feature = "logging")))]
55pub mod logging;
56
57#[cfg(feature = "time")]
58#[cfg_attr(docsrs, doc(cfg(feature = "time")))]
59pub mod time;
60
61#[cfg(feature = "collections")]
62#[cfg_attr(docsrs, doc(cfg(feature = "collections")))]
63pub mod collections;
64
65#[cfg(feature = "validation")]
66#[cfg_attr(docsrs, doc(cfg(feature = "validation")))]
67pub mod validation;
68
69#[cfg(feature = "retry")]
70#[cfg_attr(docsrs, doc(cfg(feature = "retry")))]
71pub mod retry;
72
73#[cfg(feature = "id")]
74#[cfg_attr(docsrs, doc(cfg(feature = "id")))]
75pub mod id;
76
77#[cfg(feature = "env")]
78#[cfg_attr(docsrs, doc(cfg(feature = "env")))]
79pub mod env;
80
81#[cfg(feature = "fs")]
82#[cfg_attr(docsrs, doc(cfg(feature = "fs")))]
83pub mod fs;
84
85pub mod prelude {
93 #[cfg(feature = "error")]
94 pub use crate::error::{CommonError, CommonResult};
95
96 #[cfg(feature = "config")]
97 pub use crate::config::{Config, ConfigBuilder, ConfigError};
98
99 #[cfg(feature = "logging")]
100 pub use crate::logging::{LogLevel, Logger};
101
102 #[cfg(feature = "time")]
103 pub use crate::time::{format_duration, parse_duration, unix_timestamp, unix_timestamp_millis};
104
105 #[cfg(feature = "collections")]
106 pub use crate::collections::LruCache;
107
108 #[cfg(feature = "validation")]
109 pub use crate::validation::{
110 Validator, is_valid_email, is_valid_url, validate_length, validate_range,
111 };
112
113 #[cfg(feature = "retry")]
114 pub use crate::retry::{BackoffStrategy, RetryConfig, retry};
115
116 #[cfg(feature = "id")]
117 pub use crate::id::{IdFormat, IdGenerator, generate_id, generate_prefixed_id};
118
119 #[cfg(feature = "env")]
120 pub use crate::env::{get_env, get_env_or, is_development, is_production, require_env};
121
122 #[cfg(feature = "fs")]
123 pub use crate::fs::{ensure_dir, from_wsl_path, is_wsl, resolve_path, to_wsl_path};
124}
125
126pub const VERSION: &str = env!("CARGO_PKG_VERSION");
128
129#[must_use]
131pub const fn version() -> &'static str {
132 VERSION
133}
134
135#[cfg(test)]
136mod tests {
137 use super::*;
138
139 #[test]
140 fn test_version() {
141 assert_eq!(version(), "0.0.2");
142 }
143}