diff --git a/serde/src/de/value.rs b/serde/src/de/value.rs index d8b0b434..f3bf0558 100644 --- a/serde/src/de/value.rs +++ b/serde/src/de/value.rs @@ -290,7 +290,7 @@ pub struct StrDeserializer<'a, E> { marker: PhantomData, } -impl<'a, E> IntoDeserializer<'a, E> for &'a str +impl<'de, 'a, E> IntoDeserializer<'de, E> for &'a str where E: de::Error, { @@ -304,7 +304,7 @@ where } } -impl<'de, E> de::Deserializer<'de> for StrDeserializer<'de, E> +impl<'de, 'a, E> de::Deserializer<'de> for StrDeserializer<'a, E> where E: de::Error, { @@ -314,7 +314,7 @@ where where V: de::Visitor<'de>, { - visitor.visit_borrowed_str(self.value) + visitor.visit_str(self.value) } fn deserialize_enum( @@ -338,7 +338,7 @@ where } } -impl<'de, E> de::EnumAccess<'de> for StrDeserializer<'de, E> +impl<'de, 'a, E> de::EnumAccess<'de> for StrDeserializer<'a, E> where E: de::Error, {