1 个稳定版本
1.0.0 | 2024年6月17日 |
---|
#4 in #returning
3KB
possibly
一个名为 possibly!()
的导出宏,它类似于 std::matches!()
,但允许在值匹配时返回值。
如果你想在处理额外情况的同时使用模式匹配,这可能很有用。
结果被包裹在一个 Option
中。
使用方法
use possibly::possibly;
enum MyEnum {
Foo(u32),
Bar
}
let value = MyEnum::Foo(1);
// basic usage with simple match arm
assert_eq!(
possibly!(value, MyEnum::Foo(b) => b),
Some(1)
);
// with match arm condition
assert_eq!(
possibly!(value, MyEnum::Foo(b) if i > 5 => b),
None
);