simd-json-derive 0.18.0

derives for simd-json
Documentation
use simd_json_derive::{Deserialize, Serialize};

#[test]
fn rename() {
    #[derive(Serialize, Deserialize, PartialEq, Debug)]
    struct Bla<'f3> {
        #[serde(rename = "f3")]
        f1: u8,
        #[simd_json(rename = "f4")]
        f2: String,
        #[serde(borrow, rename = "f1")]
        f3: &'f3 str,
        f5: u8,
    }

    let b = Bla {
        f1: 1,
        f2: "snot".into(),
        f3: "snot",
        f5: 8,
    };
    let mut serialized = b.json_string().unwrap();
    println!("{}", &serialized);

    assert_eq!(r#"{"f3":1,"f4":"snot","f1":"snot","f5":8}"#, serialized);
    let b1 = unsafe { Bla::from_str(&mut serialized) }
        .expect("Expected serde roundtrip with rename to work");
    println!("{:?}", &b1);
    assert_eq!(b, b1);
}

#[test]
fn rename_all_camelcase() {
    #[derive(simd_json_derive::Serialize)]
    #[serde(rename_all = "camelCase")]
    struct Bla {
        field_one: u8,
        field_two: String,
        #[serde(rename = "f3")]
        field_three: u8,
    }

    let b = Bla {
        field_one: 1,
        field_two: "snot".into(),
        field_three: 8,
    };
    println!("{}", b.json_string().unwrap());
    assert_eq!(
        r#"{"fieldOne":1,"fieldTwo":"snot","f3":8}"#,
        b.json_string().unwrap()
    )
}