use config::{Config, ConfigError, Environment}; use serde::Deserialize; #[derive(Debug, Deserialize)] pub struct AppConfig { pub server_port: u16, pub project_root: String, } impl AppConfig { pub fn load() -> Result { let config = Config::builder() .set_default("server_port", 8080)? .set_default("project_root", "/workspace")? .add_source(Environment::default().separator("__")) .build()?; config.try_deserialize() } }