assert_matches in core::assert_matches - Rust
Description: Asserts that an expression matches any of the given patterns.
Keywords: rust, rustlang, rust-lang, assert_matches

# Macro core::assert_matches::assert_matches
[−][src]

    pub macro assert_matches {
        ($left : expr, $(|) ? $($pattern : pat_param) | + $(if $guard : expr) ? $(,)
     ?) => { ... },
        ($left : expr, $(|) ? $($pattern : pat_param) | + $(if $guard : expr) ?,
     $($arg : tt) +) => { ... },
    }

🔬 This is a nightly-only experimental API. (`assert_matches` #82775)
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

    #![feature(assert_matches)]

    use std::assert_matches::assert_matches;

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

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

Run