#[macro_export]
macro_rules! assume {
($cond:expr) => {
debug_assert!($cond);
unsafe { std::hint::assert_unchecked($cond); }
};
($cond:expr, $($arg:tt)+) => {
debug_assert!($cond, $($arg)+);
unsafe { std::hint::assert_unchecked($cond); }
};
}
#[macro_export]
macro_rules! assume_eq {
($left:expr, $right:expr) => {
debug_assert_eq!($left, $right);
unsafe { std::hint::assert_unchecked($left == $right); }
};
($left:expr, $right:expr, $($arg:tt)+) => {
debug_assert_eq!($left, $right, $($arg)+);
unsafe { std::hint::assert_unchecked($left == $right); }
};
}