From 7d3cfd769e1b1bf9b823456572e9dfaf6e5151ac Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Sun, 15 Dec 2019 20:40:51 +0100 Subject: [PATCH] ID deserialization: Borrow from the deserializer if possible MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … by using Cow<'_, str> instead of String --- src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 6a7d9277..1fdcd391 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -15,6 +15,7 @@ extern crate diesel; use std::{ + borrow::Cow, convert::TryFrom, fmt::{Formatter, Result as FmtResult}, }; @@ -125,7 +126,7 @@ where D: Deserializer<'de>, T: for<'a> TryFrom<&'a str>, { - String::deserialize(deserializer).and_then(|v| { + Cow::<'_, str>::deserialize(deserializer).and_then(|v| { T::try_from(&v).map_err(|_| de::Error::invalid_value(Unexpected::Str(&v), &expected_str)) }) }