Macro loop_unwrap::unwrap_continue[][src]

macro_rules! unwrap_continue {
    ($x:expr, $err_msg:expr) => { ... };
    ($x:expr) => { ... };
}

Works like .unwrap, if it’s an Err or None, it calls continue on the loop. Prints an error message with println!() if provided.

Examples

loop {
        let input = "Not a number";
        let parsed_input: i32 = unwrap_continue!(input.parse()); //parse returns Err for this input
        break; //<-- never reached, since `continue` is called.
    }
loop {
        let input = "Not a number";
        let parsed_input: i32 = unwrap_continue!(input.parse(), "Please Enter a Number!");
        // "Please Enter a Number!" is printed in console with a `println!()`
        break;
    }
loop {
        let some_value: i32 = unwrap_continue!(Some(32), "Please Enter a Number!");
        assert_eq!(some_value, 32_i32)
    }