#variant #枚举 #模式匹配 # #模式匹配 #赋值

extract-variant

将表达式解构为单个模式,并从模式返回赋值

3 个版本 (1 个稳定版)

1.0.0 2023年4月7日
0.3.0 2022年12月10日
0.2.2 2022年12月5日
0.1.0 2022年12月4日

Rust 模式 中排名 2112

MIT/Apache

10KB
60

类型:解构宏

docs.rs Crates.io

这个小的crate导出两个便利宏。 try_variant!,它可以用来将表达式解构为单个模式,返回模式中赋值的结果。 get_variant!,它以相同的方式工作,但返回一个 Option

这个宏的工作方式类似于rust std lib中的matches!宏。

这个宏主要用于减少匹配样板代码,当您只想尝试从模式匹配中提取一些值时(这就是我制作这个的原因 😉)。

示例

use variant::try_variant;

let val = Some((0, 1));
let res = try_variant!(val, Some((i, _))).expect("i");
assert_eq!(res, 0);

let res = try_variant!(val, Some((10, j)));
assert!(res.is_err());

有关更多示例,请参阅文档页面

依赖项

~1.5MB
~36K SLoC