deserr 0.6.4

Deserialization library with focus on error handling
Documentation
use deserr::{deserialize, errors::JsonError, Deserr};
use insta::assert_debug_snapshot;
use serde_json::json;

#[test]
fn where_attribute() {
    #[allow(unused)]
    #[derive(Debug, Deserr)]
    #[deserr(where_predicate = T: Deserr<__Deserr_E>)]
    struct Struct<T> {
        doggo: String,
        catto: T,
    }

    let data =
        deserialize::<Struct<String>, _, JsonError>(json!({ "doggo": "bork", "catto": "jorts" }))
            .unwrap();
    assert_debug_snapshot!(data, @r###"
    Struct {
        doggo: "bork",
        catto: "jorts",
    }
    "###);

    let data =
        deserialize::<Struct<usize>, _, JsonError>(json!({ "doggo": "bork", "catto": 3 })).unwrap();
    assert_debug_snapshot!(data, @r###"
    Struct {
        doggo: "bork",
        catto: 3,
    }
    "###);
}