#[macro_export]
macro_rules! cmp_order {
($f1:expr) => {
$f1
};
($f1:expr, $($f:expr),+ $(,)?) => {
{
let cmp = $f1;
match cmp {
std::cmp::Ordering::Equal => cmp_order!($($f),+),
cmp @ _ => cmp
}
}
};
}
#[macro_export]
macro_rules! partial_cmp_order {
($fin:expr) => {
$fin
};
($f1:expr, $($f:expr),+ $(,)?) => {
{
let cmp = $f1;
match cmp {
Some(std::cmp::Ordering::Equal) => partial_cmp_order!($($f),+),
_ => cmp
}
}
};
}