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
struct
to 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
dedup
due to the fact that they need to be compliant with EDN spec) - List in Set
- 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