#![allow(dead_code)]
use serde::Deserialize;
use serde_with::serde_as;
use serde_with::DisplayFromStr;
use std::error::Error;
use seify::Args;
#[serde_as]
#[derive(Debug, Deserialize)]
struct Config {
driver: String,
#[serde_as(as = "DisplayFromStr")]
id: u32,
}
fn main() -> Result<(), Box<dyn Error>> {
let mut args = Args::from("driver=\"the driver\", id=123, not=interesting")?;
args.set("bar", "baz");
args.merge(Args::from("foo = bar")?);
println!("args: {args:?}");
println!("id {}", args.get::<u32>("id").unwrap());
let c: Config = args.deserialize().unwrap();
println!("config {c:#?}");
Ok(())
}