use cirious_codex_config::ConfigBuilder;
use serde::Deserialize;
use std::collections::HashMap;
#[derive(Debug, Deserialize)]
struct Database {
url: String,
pool_size: u64,
}
#[derive(Debug, Deserialize)]
struct AppConfig {
database: Database,
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut args = HashMap::new();
args.insert(
"database.url".to_string(),
"postgres://db.example.com:5432/prod".to_string(),
);
args.insert("database.pool_size".to_string(), "50".to_string());
let config = ConfigBuilder::new().add_cli_overrides(args).build::<AppConfig>()?.value;
println!("Database URL: {}", config.database.url);
println!("Updated Pool Size: {}", config.database.pool_size);
Ok(())
}