diff --git a/serde/src/private/de.rs b/serde/src/private/de.rs index 1c7fda3a1..100673e2c 100644 --- a/serde/src/private/de.rs +++ b/serde/src/private/de.rs @@ -53,9 +53,10 @@ where } #[cfg(any(feature = "std", feature = "alloc"))] -pub fn borrow_cow_str<'de: 'a, 'a, D>(deserializer: D) -> Result, D::Error> +pub fn borrow_cow_str<'de: 'a, 'a, D, R>(deserializer: D) -> Result where D: Deserializer<'de>, + R: From>, { struct CowStrVisitor; @@ -121,13 +122,14 @@ where } } - deserializer.deserialize_str(CowStrVisitor) + deserializer.deserialize_str(CowStrVisitor).map(From::from) } #[cfg(any(feature = "std", feature = "alloc"))] -pub fn borrow_cow_bytes<'de: 'a, 'a, D>(deserializer: D) -> Result, D::Error> +pub fn borrow_cow_bytes<'de: 'a, 'a, D, R>(deserializer: D) -> Result where D: Deserializer<'de>, + R: From>, { struct CowBytesVisitor; @@ -181,7 +183,7 @@ where } } - deserializer.deserialize_bytes(CowBytesVisitor) + deserializer.deserialize_bytes(CowBytesVisitor).map(From::from) } pub mod size_hint {