macro_rules! not_err { ($e:expr) => { match $e { Ok(e) => e, Err(e) => panic!("{} failed with {:?}", stringify!($e), e), } }; } macro_rules! is_err { ($e:expr) => { match $e { Ok(e) => panic!( "{} did not return with an error, but with {:?}", stringify!($e), e ), Err(e) => e, } }; } macro_rules! assert_matches { ($e:expr, $p:pat) => { assert_matches!($e, $p, ()) }; ($e:expr, $p:pat, $f:expr) => { match $e { $p => $f, e => panic!( "{}: Expected pattern {} \ndoes not match {:?}", stringify!($e), stringify!($p), e ), } }; }