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