Skip to content

Commit

Permalink
Remove useless macro.
Browse files Browse the repository at this point in the history
  • Loading branch information
progval committed May 9, 2018
1 parent b13796a commit a7254c3
Showing 1 changed file with 18 additions and 58 deletions.
76 changes: 18 additions & 58 deletions src/wire/icmp.rs
Expand Up @@ -3,62 +3,22 @@ use super::icmpv4;
#[cfg(feature = "proto-ipv6")]
use super::icmpv6;

macro_rules! v4v6 {
( $class:ident ) => {
/// icmpv4::$class or icmpv6::$class
#[derive(Clone, PartialEq, Debug)]
pub enum $class {
#[cfg(feature = "proto-ipv4")]
Ipv4(icmpv4::$class),
#[cfg(feature = "proto-ipv6")]
Ipv6(icmpv6::$class),
}

#[cfg(feature = "proto-ipv4")]
impl From<icmpv4::$class> for $class {
fn from(s: icmpv4::$class) -> Self {
$class::Ipv4(s)
}
}
#[cfg(feature = "proto-ipv6")]
impl From<icmpv6::$class> for $class {
fn from(s: icmpv6::$class) -> Self {
$class::Ipv6(s)
}
}
};
( $class:ident < $typearg:tt > ) => {
/// icmpv4::$class or icmpv6::$class
#[derive(Clone, PartialEq, Debug)]
pub enum $class<$typearg> {
#[cfg(feature = "proto-ipv4")]
Ipv4(icmpv4::$class<$typearg>),
#[cfg(feature = "proto-ipv6")]
Ipv6(icmpv6::$class<$typearg>),
}
#[cfg(feature = "proto-ipv4")]
impl<$typearg> From<icmpv4::$class<$typearg>> for $class<$typearg> {
fn from(s: icmpv4::$class<$typearg>) -> Self {
$class::Ipv4(s)
}
}
#[cfg(feature = "proto-ipv6")]
impl<$typearg> From<icmpv6::$class<$typearg>> for $class<$typearg> {
fn from(s: icmpv6::$class<$typearg>) -> Self {
$class::Ipv6(s)
}
}
};
( $class:ident < $typearg:tt : $typebound:path > ) => {
/// icmpv4::$class or icmpv6::$class
#[derive(Clone, PartialEq, Debug)]
pub enum $class<$typearg : $typebound> {
#[cfg(feature = "proto-ipv4")]
Ipv4(icmpv4::$class<$typearg>),
#[cfg(feature = "proto-ipv6")]
IPv6(icmpv6::$class<$typearg>),
}
};
#[derive(Clone, PartialEq, Eq, Debug)]
pub enum Repr<'a> {
#[cfg(feature = "proto-ipv4")]
Ipv4(icmpv4::Repr<'a>),
#[cfg(feature = "proto-ipv6")]
Ipv6(icmpv6::Repr<'a>),
}
#[cfg(feature = "proto-ipv4")]
impl<'a> From<icmpv4::Repr<'a>> for Repr<'a> {
fn from(s: icmpv4::Repr<'a>) -> Self {
Repr::Ipv4(s)
}
}
#[cfg(feature = "proto-ipv6")]
impl<'a> From<icmpv6::Repr<'a>> for Repr<'a> {
fn from(s: icmpv6::Repr<'a>) -> Self {
Repr::Ipv6(s)
}
}

v4v6!(Repr<'a>);

0 comments on commit a7254c3

Please sign in to comment.