Macro expect_macro::expect [] [src]

macro_rules! expect {
    [$result:expr, $($rest:tt)*] => { ... };
    [$result:expr] => { ... };
}

Unwrap a result or panic! with a message.

Works with Result and Option.

This macro has two forms:

  • expect!(result): calls panic!("{:#?}", err) on any unwrapped Err/None.
  • expect!(result, ...): calls panic!(...) on any unwrapped Err/None, allowing you to specify your own error formatting. This is recommened when you are using expect! with Option

Example

Without format

#[macro_use] extern crate expect_macro;
use expect_macro::*;

let result = Err("expect error");
expect!(result);

// COMPILER OUTPUT:
// thread 'example' panicked at '"expect error"', src/lib.rs:5:5

With format

#[macro_use] extern crate expect_macro;
use expect_macro::*;

let result = Err("expect error");
expect!(result, "Some values: {}, {}", 1, 2);

// COMPILER OUTPUT:
// thread 'example' panicked at 'Some values: 1, 2', src/lib.rs:5:5