1 unstable release
0.1.0 | Dec 4, 2022 |
---|
#2127 in Procedural macros
4KB
conf_from_env
This library automatically reads configurations from environment variables. The configuration is defined in one struct for configuration values and in one struct for secrets. The environment variables are expected to have the same name as the struct attributes in uppercase.
Example
LOG_LEVEL=info
REDIS_HOST=127.0.0.1
REDIS_USER=lala
REDIS_PASSWORD=lili
pub struct Config {
pub log_level: String,
pub redis_host: String,
pub redis_user: String,
timeout: u32
}
#[derive(SetStructFromEnv, Clone)]
pub struct Secrets {
pub redis_password: String,
}
pub type CoSe = ConfigAndSecrets<Config, Secrets>;
fn main() {
let cose = CoSe::from_env();
println!("config and secrets: {:?}", cose);
}
Dependencies
~1.5MB
~38K SLoC