assert_match

Macro assert_match 

Source
macro_rules! assert_match {
    ($left:expr, $(|)? $( $pattern:pat_param )|+ $( if $guard: expr )? $(,)?) => { ... };
    ($left:expr, $(|)? $( $pattern:pat_param )|+ $( if $guard: expr )?, $($arg:tt)+) => { ... };
}
Expand description

Asserts that an expression matches any of the given patterns.

Like in a match expression, the pattern can be optionally followed by if and a guard expression that has access to names bound by the pattern.

On panic, this macro will print the value of the expression with its debug representation.

Like assert!, this macro has a second form, where a custom panic message can be provided.

§Examples

use crate::assert_match;

let a = 1u32.checked_add(2);
let b = 1u32.checked_sub(2);
assert_match!(a, Some(_));
assert_match!(b, None);

let c = Ok("abc".to_string());
assert_match!(c, Ok(x) | Err(x) if x.len() < 100);