simd-json-derive 0.1.4

derives for simd-json
Documentation
use simd_json_derive::Serialize;

#[test]
fn enum_stuff_01() {
    #[derive(simd_json_derive::Serialize)]
    enum Bla {
        Blubb,
        Wobbble(u8),
        Wobbble2(u8, u16),
        Gobble { k1: u8, k2: u16 },
    };

    let b = Bla::Blubb;
    assert_eq!(r#""Blubb""#, b.json_string().unwrap());
    let b = Bla::Wobbble(1);
    assert_eq!(r#"{"Wobbble":1}"#, b.json_string().unwrap());
    let b = Bla::Wobbble2(1, 2);
    assert_eq!(r#"{"Wobbble2":[1,2]}"#, b.json_string().unwrap());
    let b = Bla::Gobble { k1: 2, k2: 3 };
    assert_eq!(r#"{"Gobble":{"k1":2,"k2":3}}"#, b.json_string().unwrap());
}

#[test]
fn enum_stuff_02() {
    #[derive(simd_json_derive::Serialize)]
    enum Bla {
        Blubb,
        Wobble,
    };

    let b = Bla::Blubb;
    assert_eq!(r#""Blubb""#, b.json_string().unwrap());
    let b = Bla::Wobble;
    assert_eq!(r#""Wobble""#, b.json_string().unwrap());
}

#[test]
fn enum_stuff_01_lifeimte() {
    #[derive(simd_json_derive::Serialize)]
    enum Bla<'a, 'b> {
        Blubb,
        Wobbble(&'a str),
        Wobbble2(&'a str, &'b str),
        Gobble { k1: u8, k2: u16 },
    };

    let b = Bla::Blubb;
    assert_eq!(r#""Blubb""#, b.json_string().unwrap());
    let b = Bla::Wobbble("snot");
    assert_eq!(r#"{"Wobbble":"snot"}"#, b.json_string().unwrap());
    let b = Bla::Wobbble2("snot", "badger");
    assert_eq!(
        r#"{"Wobbble2":["snot","badger"]}"#,
        b.json_string().unwrap()
    );
    let b = Bla::Gobble { k1: 2, k2: 3 };
    assert_eq!(r#"{"Gobble":{"k1":2,"k2":3}}"#, b.json_string().unwrap());
}