Config
Example
#![allow(unused)] fn main() { #[derive(serde::Deserialize)] pub struct Settings { pub database: DatabaseSettings, pub application_port: u16, } #[derive(serde::Deserialize)] pub struct DatabaseSettings { pub username: String, pub password: String, pub port: u16, pub host: String, pub database_name: String, } pub fn get_configuration() -> Result<Settings, config::ConfigError> { let mut settings = config::Config::default(); settings.merge(config::File::with_name("configuration"))?; settings.try_into() } }
Where configuration.yaml looks like:
application_port: 8000
database:
host: "localhost"
port: 5432
username: "postgres"
password: "password"
database_name: "newsletter"