serde: Don't error when deserializing IgnoredAny from a list

This commit is contained in:
Jonas Platte 2021-03-23 20:55:22 +01:00
parent c27b17e5f9
commit dbe470ed54
No known key found for this signature in database
GPG Key ID: CC154DE0E30B7C67
3 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,9 @@
# 0.3.1
Bug fixes:
* Fix an edge case in query parameter deserialization
# 0.3.0 # 0.3.0
Breaking changes: Breaking changes:

View File

@ -194,6 +194,13 @@ where
self.deserialize_val(move |val| val.deserialize_newtype_struct(name, visitor)) self.deserialize_val(move |val| val.deserialize_newtype_struct(name, visitor))
} }
fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value, Self::Error>
where
V: de::Visitor<'de>,
{
visitor.visit_unit()
}
forward_to_part! { forward_to_part! {
deserialize_bool, deserialize_bool,
deserialize_char, deserialize_char,
@ -214,7 +221,6 @@ where
deserialize_f64, deserialize_f64,
deserialize_option, deserialize_option,
deserialize_identifier, deserialize_identifier,
deserialize_ignored_any,
deserialize_map, deserialize_map,
} }
} }

View File

@ -89,6 +89,7 @@ fn deserialize_struct() {
let de = Params { a: 10, b: "Hello", c: None }; let de = Params { a: 10, b: "Hello", c: None };
assert_eq!(urlencoded::from_str("a=10&b=Hello"), Ok(de)); assert_eq!(urlencoded::from_str("a=10&b=Hello"), Ok(de));
assert_eq!(urlencoded::from_str("b=Hello&a=10"), Ok(de)); assert_eq!(urlencoded::from_str("b=Hello&a=10"), Ok(de));
assert_eq!(urlencoded::from_str("a=10&b=Hello&d=1&d=2"), Ok(de));
} }
#[test] #[test]