[][src]Crate chainable_if

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:

This example is not tested
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:

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

The earlier match example can be rewritten as:

This example is not tested
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:

This example is not tested
if some_condition {
    ...
} else if some_other_condition }
    ...
} else if some_third_condition {
    ...
}

Macros

if_chain

A macro for writing if chains