#![doc = include_str!("../README.md")]
#![no_std]
#[macro_export]
macro_rules! assert_matches {
($e:expr, $pat:pat) => {
let value = $e;
let $pat = value else {
::core::panic!(
"match assertion failed\n pattern: `{}`\n value: `{:?}`",
::core::stringify!($pat), value,
);
};
};
($e:expr, $pat:pat, $($arg:tt)*) => {
let value = $e;
let $pat = value else {
::core::panic!(
"match assertion failed: {}\n pattern: `{}`\n value: `{:?}`",
::core::format_args!($($arg)*), ::core::stringify!($pat), value,
);
};
};
}
#[macro_export]
macro_rules! assert_let {
($pat:pat = $e:expr) => {
$crate::assert_matches!($e, $pat);
};
($pat:pat = $e:expr, $($arg:tt)*) => {
$crate::assert_matches!($e, $pat, $($arg)*);
}
}