3 unstable releases

0.1.1 Aug 15, 2020
0.1.0 Aug 15, 2020
0.0.0 Aug 15, 2020

#16 in #composing

38 downloads per month

MIT/Apache

6KB
55 lines

chainable-if

Crate Crate docs.rs

This crate provides the if_chain! macro -- a macro for composing long chains of if-else if-else statements.

It is intended to provide an alternative to writing if chains with match, such as:

match () {
    _ if some_condition => ...,
    _ if some_other_condition => ...,
    _ if some_third_condition => ...,
    _ => ...,
}

Example usage

While it is mainly intended for long chains, if_chain! can be used for simple if-else situations, such as:

if_chain! {
| some_condition => (/* some_condition is true */),
| _ => (/* the else branch */)
}

The earlier match example can be rewritten as:

if_chain! {
| some_condition => ...,
| some_other_condition => ...,
| some_third_condition => ...,
}

Note that the else branch is not required, since if_chain! simply gets expanded into:

if some_condition {
    ...
} else if some_other_condition }
    ...
} else if some_third_condition {
    ...
}

No runtime deps