esyn 0.2.0

Rusty Config File Parser.
Documentation
esyn-0.2.0 has been yanked.

[WIP] esyn

Rusty Config File Parser.

Example

fn main() {
    #[derive(Debug, PartialEq, EsynDe)]
    enum Map {
        Up,
        Down,
    }

    #[derive(Debug, PartialEq, EsynDe)]
    struct Window {
        borderless: bool,
        topmost: bool,
    }

    #[derive(Debug, PartialEq, EsynDe)]
    struct Config {
        name: String,
        map: Map,
        invert_mouse: bool,
        font: Option<String>,
        window: Window,
    }

    let esyn = esyn::Esyn::from_file("./full.rs").unwrap();
    let list = esyn.get::<Config>("test_example").unwrap();
    let a = &list[0];

    assert_eq!(a.name, "bala".to_string());
    assert_eq!(a.map, Map::Down);
    assert_eq!(a.font, None);

    assert_eq!(a.window.borderless, true);
    assert_eq!(a.window.topmost, true);

    dbg!(a);
}

Supported Types

u8 u16 u32 u64 u128 usize
i8 i16 i32 i64 i128 isize
f32 f64
bool
char String

Option<T>
Vec<T>
Box<T>

Named Struct
Unit Enum
Unnamed Enum
Named Enum

// TODO:
// (T, .., T) // Tuple
//
// StructUnnamed
// StructEmpty
// EnumEmpty