Don't use CowStrDeserializer (fixes #53)

This commit is contained in:
Anthony Ramine 2019-04-16 11:26:25 +02:00
parent 92eadc25be
commit 98f0113592
2 changed files with 11 additions and 1 deletions

View File

@ -194,7 +194,10 @@ impl<'de> de::Deserializer<'de> for Part<'de> {
where
V: de::Visitor<'de>,
{
self.0.into_deserializer().deserialize_any(visitor)
match self.0 {
Cow::Borrowed(value) => visitor.visit_borrowed_str(value),
Cow::Owned(value) => visitor.visit_string(value),
}
}
fn deserialize_option<V>(self, visitor: V) -> Result<V::Value, Self::Error>

View File

@ -29,6 +29,13 @@ fn deserialize_str() {
assert_eq!(serde_urlencoded::from_str("first=23&last=42"), Ok(result));
}
#[test]
fn deserialize_borrowed_str() {
let result = vec![("first", 23), ("last", 42)];
assert_eq!(serde_urlencoded::from_str("first=23&last=42"), Ok(result));
}
#[test]
fn deserialize_reader() {
let result = vec![("first".to_owned(), 23), ("last".to_owned(), 42)];