edn-rs
[Experimental] Crate to parse and emit EDN
Usage
Cargo.toml
[]
= "0.2.1"
Parse an EDN into a EdnNode:
extern crate edn_rs;
use parse_edn;
Emits EDN format from a Json file
use emit_edn;
Current Features
- Define
structto map EDN infoEdnNode - Define EDN types,
EdnType - Parse simples EDN data:
- nil
"" - String
"\"string\"" - Numbers
"324352","3442.234","3/4" - Keywords
- Vector
"[1 :2 \"d\"]" - List
"(1 :2 \"d\")" - Set
"#{1 2 3}" - Map
"{:a 1 :b 2 }" - Unbalanced Map returns
EdnType::Err,"{:a 1 :b}"
- nil
- Simple data structures in one another:
- Vec in Vec
"[1 2 [:3 \"4\"]]" - Set in Vec
"[1 2 #{:3 \"4\"}]" - List in List
- Set in List
- Set in Set (Sets will not be sorted and don't need a
dedupdue to the fact that they need to be compliant with EDN spec) - Maps in general
- Vec in Vec
- Multiple simple data structures in one another (Map and Set in a vector)
- Multi deepen data structures (Map in a Set in a List in a Vec in a Vec)
- Json to Edn
- Json String to EDN String
- macro to process Structs and Enums to EDN
- Edn to Json