#[macro_export]
macro_rules! almost_equal {
($left:expr, $right:expr $(,)?) => ({
let (left, right) = ($left, $right);
if !$crate::almost::equal(left, right) {
$crate::__cmp_assert_fail!("almost_equal", &left, &right, stringify!($left), stringify!($right));
}
});
($left:expr, $right:expr, $($msg_args:tt)+) => ({
let (left, right) = ($left, $right);
if !$crate::almost::equal(left, right) {
$crate::__cmp_assert_fail!("almost_equal", &left, &right, stringify!($left), stringify!($right), format_args!($($msg_args)+))
}
})
}
#[macro_export]
macro_rules! debug_almost_equal {
($left:expr, $right:expr $(,)?) => ({
if cfg!(debug_assertions) {
let (left, right) = ($left, $right);
if !$crate::almost::equal(left, right) {
$crate::__cmp_assert_fail!("debug_almost_equal", &left, &right, stringify!($left), stringify!($right));
}
}
});
($left:expr, $right:expr, $($msg_args:tt)+) => ({
if cfg!(debug_assertions) {
let (left, right) = ($left, $right);
if !$crate::almost::equal(left, right) {
$crate::__cmp_assert_fail!("debug_almost_equal", &left, &right, stringify!($left), stringify!($right), format_args!($($msg_args)+))
}
}
})
}
#[macro_export]
macro_rules! not_almost_equal {
($left:expr, $right:expr $(,)?) => ({
let (left, right) = ($left, $right);
if $crate::almost::equal(left, right) {
$crate::__cmp_assert_fail!("not_almost_equal", &left, &right, stringify!($left), stringify!($right));
}
});
($left:expr, $right:expr, $($msg_args:tt)+) => ({
let (left, right) = ($left, $right);
if $crate::almost::equal(left, right) {
$crate::__cmp_assert_fail!("not_almost_equal", &left, &right, stringify!($left), stringify!($right), format_args!($($msg_args)+))
}
})
}
#[macro_export]
macro_rules! debug_not_almost_equal {
($left:expr, $right:expr $(,)?) => ({
if cfg!(debug_assertions) {
let (left, right) = ($left, $right);
if $crate::almost::equal(left, right) {
$crate::__cmp_assert_fail!("debug_not_almost_equal", &left, &right, stringify!($left), stringify!($right));
}
}
});
($left:expr, $right:expr, $($msg_args:tt)+) => ({
if cfg!(debug_assertions) {
let (left, right) = ($left, $right);
if $crate::almost::equal(left, right) {
$crate::__cmp_assert_fail!("debug_not_almost_equal", &left, &right, stringify!($left), stringify!($right), format_args!($($msg_args)+))
}
}
})
}