From f97eb5cdb5060dcff0e9be74de520ae1ac292a84 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Mon, 11 Mar 2024 01:45:03 +0100 Subject: [PATCH] Remove unnecessary Clone bounds on Serialize impls (#71) * Remove unnecessary bounds on private type impls * Remove unnecessary Clone bounds on Serialize impls --- src/ser.rs | 38 ++++++++++---------------------------- 1 file changed, 10 insertions(+), 28 deletions(-) diff --git a/src/ser.rs b/src/ser.rs index 5635ad2..90e907b 100644 --- a/src/ser.rs +++ b/src/ser.rs @@ -14,21 +14,13 @@ use crate::ordmap::OrdMap; use crate::ordset::OrdSet; use crate::vector::Vector; -struct SeqVisitor<'de, S, A> -where - S: From>, - A: Deserialize<'de>, -{ +struct SeqVisitor<'de, S, A> { phantom_s: PhantomData, phantom_a: PhantomData, phantom_lifetime: PhantomData<&'de ()>, } -impl<'de, S, A> SeqVisitor<'de, S, A> -where - S: From>, - A: Deserialize<'de>, -{ +impl<'de, S, A> SeqVisitor<'de, S, A> { pub(crate) fn new() -> SeqVisitor<'de, S, A> { SeqVisitor { phantom_s: PhantomData, @@ -64,24 +56,14 @@ where } } -struct MapVisitor<'de, S, K, V> -where - S: From>, - K: Deserialize<'de>, - V: Deserialize<'de>, -{ +struct MapVisitor<'de, S, K, V> { phantom_s: PhantomData, phantom_k: PhantomData, phantom_v: PhantomData, phantom_lifetime: PhantomData<&'de ()>, } -impl<'de, S, K, V> MapVisitor<'de, S, K, V> -where - S: From>, - K: Deserialize<'de>, - V: Deserialize<'de>, -{ +impl<'de, S, K, V> MapVisitor<'de, S, K, V> { pub(crate) fn new() -> MapVisitor<'de, S, K, V> { MapVisitor { phantom_s: PhantomData, @@ -130,7 +112,7 @@ impl<'de, A: Deserialize<'de> + Ord + Clone> Deserialize<'de> for OrdSet { } } -impl Serialize for OrdSet { +impl Serialize for OrdSet { fn serialize(&self, ser: S) -> Result where S: Serializer, @@ -156,7 +138,7 @@ impl<'de, K: Deserialize<'de> + Ord + Clone, V: Deserialize<'de> + Clone> Deseri } } -impl Serialize for OrdMap { +impl Serialize for OrdMap { fn serialize(&self, ser: S) -> Result where S: Serializer, @@ -187,8 +169,8 @@ where impl Serialize for HashMap where - K: Serialize + Hash + Eq + Clone, - V: Serialize + Clone, + K: Serialize + Hash + Eq, + V: Serialize, S: BuildHasher + Default, { fn serialize(&self, ser: Ser) -> Result @@ -216,7 +198,7 @@ impl<'de, A: Deserialize<'de> + Hash + Eq + Clone, S: BuildHasher + Default> Des } } -impl Serialize for HashSet { +impl Serialize for HashSet { fn serialize(&self, ser: Ser) -> Result where Ser: Serializer, @@ -240,7 +222,7 @@ impl<'de, A: Clone + Deserialize<'de>> Deserialize<'de> for Vector { } } -impl Serialize for Vector { +impl Serialize for Vector { fn serialize(&self, ser: S) -> Result where S: Serializer,