//! el-config — Layered, typed configuration for el-ui applications. //! //! ## Resolution order (highest priority wins) //! //! 1. Environment variables (`EL_APP_NAME=...`) //! 2. `.env` file (development only) //! 3. `el.toml` `[env.]` section //! 4. `el.toml` `[config]` base section //! 5. Defaults defined in code //! //! ## Quick start //! //! ``` //! use el_config::prelude::*; //! //! let mut cfg = Config::new(Environment::Development); //! let mut defaults = std::collections::HashMap::new(); //! defaults.insert("app.name".to_string(), "MyApp".to_string()); //! defaults.insert("server.port".to_string(), "8080".to_string()); //! cfg.set_defaults(defaults); //! //! let name = cfg.get::("app.name").unwrap(); //! let port = cfg.get::("server.port").unwrap(); //! assert_eq!(name, "MyApp"); //! assert_eq!(port, 8080); //! ``` #![deny(warnings)] pub mod config; pub mod env; pub mod error; pub mod source; pub mod prelude { pub use crate::config::{load_from_toml, Config}; pub use crate::env::Environment; pub use crate::error::ConfigError; pub use crate::source::{ConfigSource, EnvVarSource, FromConfigStr, MapSource}; } pub use prelude::*;