diff --git a/bitcoin/src/address.rs b/bitcoin/src/address.rs index 606f5ac4..08038f2a 100644 --- a/bitcoin/src/address.rs +++ b/bitcoin/src/address.rs @@ -615,7 +615,7 @@ mod sealed { /// Marker of status of address's network validation. See section [*Parsing addresses*](Address#parsing-addresses) /// on [`Address`] for details. -pub trait NetworkValidation: sealed::NetworkValidation { +pub trait NetworkValidation: sealed::NetworkValidation + Sync + Send + Sized + Unpin { /// Indicates whether this `NetworkValidation` is `NetworkChecked` or not. const IS_CHECKED: bool; } @@ -747,21 +747,18 @@ where V: NetworkValidation; #[cfg(feature = "serde")] -struct DisplayUnchecked<'a>(&'a Address); +struct DisplayUnchecked<'a, N: NetworkValidation>(&'a Address); #[cfg(feature = "serde")] -impl fmt::Display for DisplayUnchecked<'_> { +impl fmt::Display for DisplayUnchecked<'_, N> { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { self.0.fmt_internal(fmt) } } -#[cfg(feature = "serde")] -crate::serde_utils::serde_string_serialize_impl!(Address, "a Bitcoin address"); - #[cfg(feature = "serde")] crate::serde_utils::serde_string_deserialize_impl!(Address, "a Bitcoin address"); #[cfg(feature = "serde")] -impl serde::Serialize for Address { +impl serde::Serialize for Address { fn serialize(&self, serializer: S) -> Result where S: serde::Serializer,