A Rust JSON5 serializer and deserializer which speaks Serde.
Deserialize a JSON5 string with from_str. Go the other way with to_string.
The serializer is very basic at the moment, it just produces plain old JSON.
See the Serde documentation for details on implementing Serialize and
Deserialize. (Usually it's just a case of sprinkling in some derives.)
The Serde data model is mostly supported, with the exception of bytes and borrowed strings.
Read some config into a struct.
use json5;
use serde_derive::Deserialize;
#[derive(Deserialize, Debug, PartialEq)]
struct Config {
    message: String,
    n: i32,
}
fn main() {
    let config = "
        {
          // A traditional message.
          message: 'hello world',
          // A number for some reason.
          n: 42,
        }
    ";
    assert_eq!(
        json5::from_str(config),
        Ok(Config {
            message: "hello world".to_string(),
            n: 42,
        }),
    );
}