# yscl-rs An efficient, minimal parser for [YSCL](https://github.com/kylejlin/yscl). ## Example ```rust use yscl::prelude::*; let map = parse_doc(r#" kantu_version = "1.0.0" name = "fibonacci" license = [ "MIT" "Apache-2.0" ] dependencies = { yscl = "1.0.0" json = "1.0.0" } author = "xeklan (黒🐑)" "#).unwrap(); let expected = Map { entries: vec![ MapEntry { key: Identifier::new("kantu_version".to_owned()).unwrap(), value: Node::Atom( Atom { value: "1.0.0".to_owned(), }, ), }, MapEntry { key: Identifier::new("name".to_owned()).unwrap(), value: Node::Atom( Atom { value: "fibonacci".to_owned(), }, ), }, MapEntry { key: Identifier::new("license".to_owned()).unwrap(), value: Node::List( List { elements: vec![ Node::Atom( Atom { value: "MIT".to_owned(), }, ), Node::Atom( Atom { value: "Apache-2.0".to_owned(), }, ), ], }, ), }, MapEntry { key: Identifier::new("dependencies".to_owned()).unwrap(), value: Node::Map( Map { entries: vec![ MapEntry { key: Identifier::new("yscl".to_owned()).unwrap(), value: Node::Atom( Atom { value: "1.0.0".to_owned(), }, ), }, MapEntry { key: Identifier::new("json".to_owned()).unwrap(), value: Node::Atom( Atom { value: "1.0.0".to_owned(), }, ), }, ], }, ), }, MapEntry { key: Identifier::new("author".to_owned()).unwrap(), value: Node::Atom( Atom { value: "xeklan (黒🐑)".to_owned(), }, ), }, ], }; assert_eq!(expected, map); ``` ## Docs [https://docs.rs/yscl/latest/yscl/](https://docs.rs/yscl/latest/yscl/) ## License yscl-rs is distributed under both the MIT license and the Apache License (Version 2.0). See [LICENSE-APACHE](./LICENSE-APACHE) and [LICENSE-MIT](./LICENSE-MIT) for details.