diff --git a/Cargo.toml b/Cargo.toml index 8cebd0d606..d89cee194c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -41,7 +41,7 @@ core2 = { version = "0.3.0", optional = true, default-features = false } base64-compat = { version = "1.0.0", optional = true } bitcoinconsensus = { version = "0.19.0-3", optional = true } -serde = { version = "1", default-features = false, features = [ "derive" ], optional = true } +serde = { version = "1", default-features = false, features = [ "derive", "alloc" ], optional = true } hashbrown = { version = "0.8", optional = true } [dev-dependencies] diff --git a/contrib/test.sh b/contrib/test.sh index 7e4f90d4f3..676e26bb86 100755 --- a/contrib/test.sh +++ b/contrib/test.sh @@ -81,8 +81,6 @@ then cargo new dep_test cd dep_test echo 'bitcoin = { path = "..", features = ["use-serde"] }' >> Cargo.toml - echo 'serde = { version = "1" }' >> Cargo.toml - cargo test --verbose fi diff --git a/src/blockdata/script.rs b/src/blockdata/script.rs index 5f995a2686..7f83bc9dc0 100644 --- a/src/blockdata/script.rs +++ b/src/blockdata/script.rs @@ -1024,20 +1024,6 @@ impl<'de> serde::Deserialize<'de> for Script { let v = Vec::from_hex(v).map_err(E::custom)?; Ok(Script::from(v)) } - - fn visit_borrowed_str(self, v: &'de str) -> Result - where - E: serde::de::Error, - { - self.visit_str(v) - } - - fn visit_string(self, v: String) -> Result - where - E: serde::de::Error, - { - self.visit_str(&v) - } } deserializer.deserialize_str(Visitor) } else { @@ -1056,6 +1042,13 @@ impl<'de> serde::Deserialize<'de> for Script { { Ok(Script::from(v.to_vec())) } + + fn visit_byte_buf(self, v: Vec) -> Result + where + E: serde::de::Error, + { + Ok(Script::from(v)) + } } deserializer.deserialize_bytes(BytesVisitor) } diff --git a/src/internal_macros.rs b/src/internal_macros.rs index e1bfe7525a..1edaa30e15 100644 --- a/src/internal_macros.rs +++ b/src/internal_macros.rs @@ -152,20 +152,6 @@ macro_rules! serde_string_impl { { $name::from_str(v).map_err(E::custom) } - - fn visit_borrowed_str(self, v: &'de str) -> Result - where - E: $crate::serde::de::Error, - { - self.visit_str(v) - } - - fn visit_string(self, v: $crate::prelude::String) -> Result - where - E: $crate::serde::de::Error, - { - self.visit_str(&v) - } } deserializer.deserialize_str(Visitor) @@ -215,19 +201,6 @@ macro_rules! serde_struct_human_string_impl { $name::from_str(v).map_err(E::custom) } - fn visit_borrowed_str(self, v: &'de str) -> Result - where - E: $crate::serde::de::Error, - { - self.visit_str(v) - } - - fn visit_string(self, v: $crate::prelude::String) -> Result - where - E: $crate::serde::de::Error, - { - self.visit_str(&v) - } } deserializer.deserialize_str(Visitor) @@ -573,21 +546,6 @@ macro_rules! user_enum { Err(E::unknown_variant(v, FIELDS)) } } - - fn visit_borrowed_str(self, v: &'de str) -> Result - where - E: $crate::serde::de::Error, - { - self.visit_str(v) - } - - fn visit_string(self, v: $crate::prelude::String) -> Result - where - E: $crate::serde::de::Error, - { - self.visit_str(&v) - } - } deserializer.deserialize_str(Visitor)