From 32b98f0c5a417b280f184dd3c5859495aa2ee9f0 Mon Sep 17 00:00:00 2001 From: Jiahao XU Date: Fri, 22 Jul 2022 01:43:40 +1000 Subject: [PATCH] Fix `Deserialize` for `CrateVersionSource` Use `Cow::<'_, str>::deserialize` to ensure that it would still work even if it contains escaped characters. Signed-off-by: Jiahao XU --- src/metafiles/cvs.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/metafiles/cvs.rs b/src/metafiles/cvs.rs index d63d35cf..b56ab5fc 100644 --- a/src/metafiles/cvs.rs +++ b/src/metafiles/cvs.rs @@ -1,4 +1,4 @@ -use std::{fmt, str::FromStr}; +use std::{borrow::Cow, fmt, str::FromStr}; use miette::Diagnostic; use once_cell::sync::Lazy; @@ -116,7 +116,7 @@ impl<'de> Deserialize<'de> for CrateVersionSource { where D: Deserializer<'de>, { - let s = <&str>::deserialize(deserializer)?; - Self::from_str(s).map_err(serde::de::Error::custom) + let s = Cow::<'_, str>::deserialize(deserializer)?; + Self::from_str(&s).map_err(serde::de::Error::custom) } }