diff --git a/CHANGELOG.md b/CHANGELOG.md index f342cb1..3bea36c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,9 +6,13 @@ - Add support for `#[serde(skip)]` ([#14][]) - Add support for generics ([#11][]) +- skip_serializing_if no longer incorrectly affects deserialization (fixes [#2][]) +- No longer fails deserialising maps with unknown fields ([#19][]) -[#14]: https://github.com/trussed-dev/serde-indexed/pull/14 +[#2]: https://github.com/trussed-dev/serde-indexed/issues/2 [#11]: https://github.com/trussed-dev/serde-indexed/pull/11 +[#14]: https://github.com/trussed-dev/serde-indexed/pull/14 +[#19]: https://github.com/trussed-dev/serde-indexed/pull/19 ## [v0.1.1][] (2024-04-03) diff --git a/src/lib.rs b/src/lib.rs index b9ae290..360dc7c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -224,7 +224,8 @@ pub fn derive_deserialize(input: TokenStream) -> TokenStream { match __serde_indexed_internal_key { #(#match_fields)* _ => { - return Err(serde::de::Error::duplicate_field("inexistent field index")); + // Ignore unknown keys by consuming their value + let _ = map.next_value::()?; } } }