| Crates.io | try_more |
| lib.rs | try_more |
| version | 0.1.1 |
| created_at | 2022-02-01 19:05:03.695371+00 |
| updated_at | 2022-02-01 19:16:11.217487+00 |
| description | Expand your possibilities with the Try `?` Operator |
| homepage | |
| repository | https://github.com/dbofmmbt/try_more |
| max_upload_size | |
| id | 525347 |
| size | 7,842 |
? OperatorHave you ever found yourself writing a function which may return early based on some condition?
fn my_function() {
// ...
if condition_a {
return;
}
// ...
if condition_b {
return;
}
// ...
}
It doesn't look Rusty, right? This crate offers an extension trait to be able to convert from
a bool to a ControlFlow and leverage the mighty power of ? to get rid of those checks:
use core::ops::ControlFlow;
use try_more::BoolFlow;
fn my_function() -> ControlFlow<()> {
// ...
BoolFlow::r#break(condition_a)?;
// ...
condition_b.r#break()?;
// ...
}
There's also other methods besides continue and break which allows to control the value which is passed to the Break variant.