1 unstable release
Uses new Rust 2024
new 0.1.0 | May 10, 2025 |
---|
#829 in Encoding
50 downloads per month
77KB
2K
SLoC
serde_sono
A serde de-/serializer for the Sono data format.
Example
use serde::Deserialize;
#[derive(Deserialize, Debug)]
#[allow(dead_code)]
struct Hobby(String);
#[derive(Deserialize, Debug)]
#[allow(dead_code)]
struct Person {
name: String,
age: u32,
hobby: Hobby,
#[serde(default)]
friends: Vec<Person>,
}
fn main() {
let s = r#"
Person {
name: "pete",
age: 10,
hobby: "reading",
friends: [
{ name: "tom", age: 33, hobby: "writing" },
Person("mike", 9, Hobby("transpiling"), []),
Person("josh", 12, "dreaming"),
]
}
"#;
match serde_sono::from_str::<Person>(s) {
Err(e) => println!("syntax error: {e:#}"),
Ok(value) => println!("{value:#?}"),
}
}
SONO language
See https://github.com/xitep/sono
TODOs
- Pretty formatting when serializing
- Measure and tweak performance
- Efficient value skipping / ignoring
- Documentation
Dependencies
~95–320KB