43 lines
1.2 KiB
Rust
43 lines
1.2 KiB
Rust
//! 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.<current>]` 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::<String>("app.name").unwrap();
|
|
//! let port = cfg.get::<u32>("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::*;
|