#![allow(unused_crate_dependencies)]
use std::net::Ipv4Addr;
use derpscfg::prelude::*;
#[derive(Debug, Derpscfg)]
pub struct Listen {
#[scfg(param, default=String::from("http"))]
pub ltype: String,
#[scfg(default=Ipv4Addr::new(127,0,0,1))]
pub address: Ipv4Addr,
#[scfg(default)]
pub port: u16,
}
#[derive(Debug, Derpscfg)]
pub struct Config {
pub listen: Listen,
}
#[derive(Debug, Derpscfg)]
pub struct Wrapper {
pub config: Config,
}
fn main() {
static SCFG_DOC: &str = r#"
config {
listen {
# all fields have default values, so this works
}
}
"#;
let demo = derpscfg::parse::<Wrapper>(SCFG_DOC).unwrap();
println!("{demo:?}");
}