当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust assert_matches用法及代码示例


本文简要介绍rust语言中 Macro core::assert_matches::assert_matches 的用法。

用法

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

断言一个表达式匹配任何给定的模式。

就像在match 表达式中一样,该模式可以选择性地后跟if 和一个可以访问由该模式绑定的名称的保护表达式。

Panics时,此宏将打印表达式的值及其调试表示。

assert! 一样,这个宏有第二种形式,可以提供自定义的Panics消息。

例子

#![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);

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Macro core::assert_matches::assert_matches。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。