#[macro_export]
macro_rules! ordmask {
($(<$T: ty>)?) => {
ordmask::OrdMask$(::<$T>)?::empty()
};
($(<$T: ty>)? ..) => {
ordmask::OrdMask$(::<$T>)?::universal()
};
($(<$T: ty>)? .., $($key_points:expr),+ $(,)?) => {
ordmask::OrdMask$(::<$T>)?::from_complement(vec![$($key_points),+])
};
(<$T: ty> $($key_points:expr),+ $(,)?) => {
ordmask::OrdMask::<$T>::from(vec![$($key_points),+])
};
($($key_points:expr),+ $(,)?) => {
ordmask::OrdMask::from(vec![$($key_points),+])
};
}
#[macro_export]
macro_rules! ordmask_uncheck {
($($T: ty)?) => {
ordmask::OrdMask$(::<$T>)?::empty()
};
($($T: ty;)? ..) => {
ordmask::OrdMask$(::<$T>)?::universal()
};
($($T: ty;)? .., $($key_points:expr),+ $(,)?) => {
ordmask::OrdMask$(::<$T>)?::with_checked(vec![$($key_points),+], true)
};
($T: ty; $($key_points:expr),+ $(,)?) => {
ordmask::OrdMask::<$T>::with_checked(vec![$($key_points),+], false)
};
($($key_points:expr),+ $(,)?) => {
ordmask::OrdMask::with_checked(vec![$($key_points),+], false)
};
}