serde-ignored
serde-ignored copied to clipboard
Not detecting ignored fields in internally tagged enums
Drop-in unit test:
#[test]
fn test_internally_tagged_enum() {
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Deserialize)]
struct Struct {
field: String,
}
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Deserialize)]
#[serde(tag = "type")]
enum Enum {
Variant(Struct),
}
let json = r#"{
"type": "Variant",
"field": "value",
"typo": "bork"
}"#;
let ignored = &["typo"];
assert_ignored::<Enum>(json, ignored);
}
Output:
---- test_enum stdout ----
thread 'test_internally_tagged_enum' panicked at 'assertion failed: `(left == right)`
left: `{}`,
right: `{"typo"}`', tests/test.rs:22:5