derpscfg 0.8.0

A brief, incomplete, and mostly wrong derive implementation for scfg
Documentation

derpscfg

A brief, incomplete, and mostly wrong derive implementation for scfg.

A fork of scfg-rs with simple but powerful derive capabilities.

Example

use std::collections::BTreeMap;
use derpscfg::prelude::*;

#[derive(Debug, Derpscfg)]
pub struct Model {
    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: BTreeMap<String, 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. The crate also comes with several examples.

Contributing

Please send patches or pull requests to my public inbox.

License

MIT OR Apache-2.0