From 4cbd87b6f78fd0e4c98ae869d204630beb434d10 Mon Sep 17 00:00:00 2001 From: Eran Rundstein Date: Thu, 17 Aug 2023 15:14:24 -0700 Subject: [PATCH] Prevent serde from bringing in `std` unless the `std` feature is enabled for this crate (#499) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Prevent serde from bringing in `std` unless the `std` feature is enabled for this crate. * simplify serde usage * Apply suggestions from code review Co-authored-by: Bastian Köcher --------- Co-authored-by: Bastian Köcher --- Cargo.toml | 4 ++-- src/compact.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index d0dc5494..6fa36e3d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ rust-version = "1.60.0" [dependencies] arrayvec = { version = "0.7", default-features = false } -serde = { version = "1.0.183", optional = true } +serde = { version = "1.0.183", default-features = false, optional = true } parity-scale-codec-derive = { path = "derive", version = ">= 3.6.4", default-features = false, optional = true } bitvec = { version = "1", default-features = false, features = [ "alloc" ], optional = true } bytes = { version = "1", default-features = false, optional = true } @@ -39,7 +39,7 @@ bench = false [features] default = ["std"] derive = ["parity-scale-codec-derive"] -std = ["serde", "bitvec?/std", "byte-slice-cast/std", "chain-error"] +std = ["serde/std", "bitvec?/std", "byte-slice-cast/std", "chain-error"] bit-vec = ["bitvec"] fuzz = ["std", "arbitrary"] diff --git a/src/compact.rs b/src/compact.rs index 2432af97..f19ea977 100644 --- a/src/compact.rs +++ b/src/compact.rs @@ -192,14 +192,14 @@ impl core::fmt::Debug for Compact where T: core::fmt::Debug { } } -#[cfg(feature = "std")] +#[cfg(feature = "serde")] impl serde::Serialize for Compact where T: serde::Serialize { fn serialize(&self, serializer: S) -> Result where S: serde::Serializer { T::serialize(&self.0, serializer) } } -#[cfg(feature = "std")] +#[cfg(feature = "serde")] impl<'de, T> serde::Deserialize<'de> for Compact where T: serde::Deserialize<'de> { fn deserialize(deserializer: D) -> Result where D: serde::Deserializer<'de> { T::deserialize(deserializer).map(Compact)