wson_rs/
lib.rs

1pub mod error;
2pub mod parser;
3pub mod serializer;
4
5use error::{WsonParseError, WsonSerializeError};
6use parser::parse_wson;
7use serializer::serialize_wson;
8use std::collections::BTreeMap;
9
10pub type WsonMap = BTreeMap<String, WsonValue>;
11
12#[derive(Debug, Clone, PartialEq)]
13pub enum WsonValue {
14    Null,
15    Bool(bool),
16    Int(i64),
17    Float(f64),
18    String(String),
19    Date(String),
20    DateTime(String),
21    Version(Vec<u32>),
22    Array(Vec<WsonValue>),
23    Object(WsonMap),
24}
25
26pub fn loads(input: &str) -> Result<WsonMap, WsonParseError> {
27    parse_wson(input)
28}
29
30pub fn dumps(data: &WsonMap) -> Result<String, WsonSerializeError> {
31    serialize_wson(data)
32}
33
34pub fn validate(input: &str) -> bool {
35    parse_wson(input).is_ok()
36}