derpscfg
A brief, incomplete, and mostly wrong derive implementation for scfg.
A fork of scfg-rs with simple but powerful derive capabilities.
Example
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:?}");
}
Documentation
More details can be found in the documentation of the derive macro. The
crate also comes with several examples.
Contributing
Please send patches to the mailing list.
License
MIT OR Apache-2.0