use serde::Deserialize;
use stratify::config::Builder;
#[derive(Debug, Deserialize)]
struct Database {
host: String,
port: String,
tls: String,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let store = Builder::default()
.json("examples/config/base.json", 100)
.yaml("examples/config/production.yaml", 50)
.build()
.await?;
let database: Database = store.get("database")?;
println!("host = {}", database.host);
println!("port = {}", database.port);
println!("tls = {}", database.tls);
match store.get::<Database>("databse") {
Ok(_) => println!("unexpected"),
Err(e) => println!("typo in the key is an error: {e}"),
}
Ok(())
}