diff --git a/Cargo.lock b/Cargo.lock index ffccff718..598e0761e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3903,6 +3903,7 @@ dependencies = [ name = "tor-hscrypto" version = "0.1.0" dependencies = [ + "derive_more", "digest 0.10.6", "hex-literal", "humantime 2.1.0", diff --git a/crates/tor-hscrypto/Cargo.toml b/crates/tor-hscrypto/Cargo.toml index 87ace1d9c..9cab195e5 100644 --- a/crates/tor-hscrypto/Cargo.toml +++ b/crates/tor-hscrypto/Cargo.toml @@ -15,6 +15,7 @@ repository = "https://gitlab.torproject.org/tpo/core/arti.git/" default = [] [dependencies] +derive_more = "0.99.3" digest = "0.10.0" paste = "1" rand_core = "0.6.2" diff --git a/crates/tor-hscrypto/src/macros.rs b/crates/tor-hscrypto/src/macros.rs index 9ae1d85f9..dfe84db42 100644 --- a/crates/tor-hscrypto/src/macros.rs +++ b/crates/tor-hscrypto/src/macros.rs @@ -10,44 +10,14 @@ macro_rules! define_pk_keypair { } => { paste::paste!{ $(#[$meta])* - #[derive(Clone,Debug)] + #[derive(Clone,Debug,derive_more::From,derive_more::Deref,derive_more::Into,derive_more::AsRef)] pub struct $pk ($pkt); - impl AsRef<$pkt> for $pk { - fn as_ref(&self) -> &$pkt { - &self.0 - } - } - impl From<$pkt> for $pk { - fn from(inp: $pkt) -> Self { - Self(inp) - } - } - impl From<$pk> for $pkt { - fn from(inp: $pk) -> Self { - inp.0 - } - } - #[doc = concat!("The private counterpart of a [`", stringify!($pk), "Key'].")] $(#[$sk_meta])* + #[derive(derive_more::From,derive_more::Into,derive_more::AsRef)] pub struct $sk ($skt); - impl AsRef<$skt> for $sk { - fn as_ref(&self) -> &$skt { - &self.0 - } - } - impl From<$skt> for $sk { - fn from(inp: $skt) -> Self { - Self(inp) - } - } - impl From<$sk> for $skt { - fn from(inp: $sk) -> $skt { - inp.0 - } - } impl std::fmt::Debug for $sk { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {