Skip to content

pandaman64/sion-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sion-rs

SION serializer/deserializer implementation in Rust.

How to use

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);
}

License

Licensed under either of

at your option.

Future work

  • handle .Date correctly (now sion-rs treats any .Date as a single float, collapsing the structure)
  • benchmark and optimize
  • support other input/output formats than str
  • write document

About

No description, website, or topics provided.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published