#expression #pattern #boolean #whether #evaluate #match #debugging

matches

一个宏,用于评估表达式是否匹配模式,返回布尔值

10 个发布版本

使用旧的 Rust 2015

0.1.10 2023 年 1 月 21 日
0.1.9 2021 年 8 月 12 日
0.1.8 2018 年 8 月 22 日
0.1.7 2018 年 7 月 19 日
0.1.0 2014 年 12 月 5 日

13#whether 中排名

Download history 437196/week @ 2024-04-26 442686/week @ 2024-05-03 441677/week @ 2024-05-10 464184/week @ 2024-05-17 460613/week @ 2024-05-24 490663/week @ 2024-05-31 473030/week @ 2024-06-07 451736/week @ 2024-06-14 474273/week @ 2024-06-21 441371/week @ 2024-06-28 427708/week @ 2024-07-05 458135/week @ 2024-07-12 454508/week @ 2024-07-19 453298/week @ 2024-07-26 445329/week @ 2024-08-02 437240/week @ 2024-08-09

1,875,216 每月下载次数
用于 6,034 个 crate (218 直接)

MIT 许可证

6KB
55

一个宏,用于评估表达式是否匹配模式,返回布尔值。

对于仅使用 Rust 1.42 及更高版本构建的用户,考虑使用 std::matches,它包含在 标准库预定义中,因此自动可用。


lib.rs:

一个宏,用于评估表达式是否匹配模式,返回布尔值。

对于仅使用 Rust 1.42 及更高版本构建的用户,考虑使用 std::matches,它包含在 标准库预定义中,因此自动可用。

示例

#[macro_use]
extern crate matches;

#[derive(Debug)]
pub enum Foo<T> {
    A,
    B(T),
}

impl<T> Foo<T> {
    pub fn is_b(&self) -> bool {
        matches!(*self, Foo::B(_))
    }
}

impl<T: core::fmt::Debug> Foo<T> {
    pub fn assert_is_b(&self) {
        assert_matches!(&self, Foo::B(_));
    }
}

无运行时依赖