Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
}
}
+#[macro_export] // <- otherwise bogus warning `unused_macros`
+macro_rules! matches_doesnot_yn2bool {
+ (=) => (true);
+ (!) => (false);
+}
+
#[macro_export]
macro_rules! matches_doesnot {
- ($v:expr, = $($y:pat)|*, ! $($n:pat)|* $(,)?) =>
- { match $v { $($y)|* => true, $($n)|* => false } }
+ ($v:expr,
+ $(
+ $yn:tt $($p:pat)|*
+ ),*
+ ) => {
+ match $v {
+ $(
+ $($p)|* => matches_doesnot_yn2bool!($yn),
+ )*
+ }
+ }
}
#[test]
! Some(_) | None
)
);
+ assert!(
+ ! matches_doesnot!(
+ Some(1),
+ ! Some(1) | Some(2),
+ = Some(_) | None
+ )
+ );
}
pub fn dbgc_helper(file: &'static str, line: u32,