3 个版本 (1 个稳定版)
1.0.0 | 2023年4月7日 |
---|---|
0.3.0 | 2022年12月10日 |
0.2.2 | 2022年12月5日 |
0.1.0 |
|
在 Rust 模式 中排名 2112
10KB
60 行
类型:解构宏
这个小的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