use crate::natural::Natural;
use malachite_base::num::comparison::traits::EqAbs;
macro_rules! impl_unsigned {
($t: ident) => {
impl EqAbs<$t> for Natural {
#[inline]
fn eq_abs(&self, other: &$t) -> bool {
self == other
}
}
impl EqAbs<Natural> for $t {
#[inline]
fn eq_abs(&self, other: &Natural) -> bool {
self == other
}
}
};
}
apply_to_unsigneds!(impl_unsigned);
macro_rules! impl_signed {
($t: ident) => {
impl EqAbs<$t> for Natural {
#[inline]
fn eq_abs(&self, other: &$t) -> bool {
*self == other.unsigned_abs()
}
}
impl EqAbs<Natural> for $t {
#[inline]
fn eq_abs(&self, other: &Natural) -> bool {
self.unsigned_abs() == *other
}
}
};
}
apply_to_signeds!(impl_signed);