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}