Crates.io | possibly |
lib.rs | possibly |
version | 1.0.0 |
source | src |
created_at | 2024-06-17 22:21:15.005194 |
updated_at | 2024-06-17 22:21:15.005194 |
description | Like matches!(), but returning an Option type. |
homepage | |
repository | https://github.com/Hakhenaton/main.git |
max_upload_size | |
id | 1274943 |
size | 2,331 |
possibly
A single exported macro called possibly!()
, which works std::matches!()
but allowing to return a value when the values matches.
It can be useful if you want to use pattern matching without dealing with extra cases.
The result is wrapped inside an 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
);