Crate try_more

Crate try_more 

Source
Expand description

§Expand your possibilities with the Try ? Operator

Have 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:


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.

Traits§

BoolFlow
Allows to convert from a bool to a ControlFlow in order to easily use the ? operator.