SION serializer/deserializer implementation in Rust.
Add the following to your Cargo.toml
[dependencies]
serde = "1.0"
serde_derive = "1.0"
sion-rs = "0.1"
Then you can use serde's Serialize
/Deserialize
to deal with SION data.
extern crate serde;
#[macro_use]
extern crate serde_derive;
extern crate sion_rs;
use sion_rs::{to_string, from_str};
fn main() {
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
struct Person {
name: String,
age: u32,
}
let person = Person {
name: "dankogai".into(),
age: 48,
};
let expected = r#"["name":"dankogai","age":48]"#;
assert_eq!(to_string(&person).unwrap(), expected);
let deserialized = from_str::<Person>(expected).unwrap();
assert_eq!(deserialized, person);
}
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
- handle
.Date
correctly (nowsion-rs
treats any.Date
as a single float, collapsing the structure) - benchmark and optimize
- support other input/output formats than
str
- write document