try_option!() { /* proc-macro */ }
Expand description

Unwrap std::option::Option, if none, return the alternative value.

try_option!(..) expand to match .. { Some(x) => x, None => return, }.

try_option!(.. ? ..) expand to match .. { Some(x) => x, None => return .. }.

Example

use helper::try_option;

fn foo(b: &mut bool) {
    try_option!(Some(()));
    *b = true
}
let mut b = false;
foo(&mut b);
assert!(b);

fn bar() -> bool {
    let x = try_option!(Some("bar") ? false);
    x == "bar"
}
assert!(bar());