#![allow(unused_crate_dependencies)]
use derpscfg::prelude::*;
#[derive(Debug, Derpscfg)]
pub struct Model {
#[scfg(param)]
pub name: String,
pub max_speed: String,
pub weight: String,
pub lines_served: Vec<String>,
}
#[derive(Debug, Derpscfg)]
pub struct Train {
#[scfg(param)]
pub name: String,
#[scfg(name = "model")]
pub models: Vec<Model>,
}
#[derive(Debug, Derpscfg)]
pub struct ScfgDemo {
pub train: Train,
}
fn main() {
static SCFG_DOC: &str = r#"
train "Shinkansen" {
model "E5" {
max-speed 320km/h
weight 453.5t
lines-served "Tōhoku" "Hokkaido"
}
model "E7" {
max-speed 275km/h
weight 540t
lines-served "Hokuriku" "Jōetsu"
}
}
"#;
let demo = derpscfg::parse::<ScfgDemo>(SCFG_DOC).unwrap();
println!("{demo:?}");
}