pub fn load_settings(config_name: &str, env_prefix: &str) -> T where for<'de> T: serde::Deserialize<'de> { let default_file = config::File::with_name(&format!("emgauwa-{}", config_name)) .required(false); config::Config::builder() .add_source(default_file) .add_source( config::Environment::with_prefix(&format!("EMGAUWA_{}", env_prefix)) .prefix_separator("__") .separator("__"), ) .build() .expect("Error building settings") .try_deserialize::() .expect("Error reading settings") }