[][src]Macro totems::assert_some

macro_rules! assert_some {
    ($option:expr) => { ... };
    ($option:expr, value == $value:expr) => { ... };
    ($option:expr, value != $value:expr) => { ... };
    ($option:expr, value < $value:expr) => { ... };
    ($option:expr, value <= $value:expr) => { ... };
    ($option:expr, value > $value:expr) => { ... };
    ($option:expr, value >= $value:expr) => { ... };
}

Asserts that an Option is Some

Parameters

  • &option A reference to an Option.
  • &value (optional) A reference to an item to compare to Some's inner value.

Dependencies

  • All content must implement Debug
  • value must be comparable to Ok's inner value.

Examples

Check for Some only:

use totems::assert_some;
let option = "5".parse::<u32>().ok();
assert_some!(&option);

Check for Some and correct inner value:

use totems::assert_some;
let option = "5".parse::<u32>().ok();
assert_some!(&option, value == &5);
assert_some!(&option, value != &0);
assert_some!(&option, value <  &6);
assert_some!(&option, value <= &6);
assert_some!(&option, value >  &4);
assert_some!(&option, value >= &4);

Example Error Messages

thread 'main' panicked at 'assertion failed: (&option is Some(_))
 &option: None
', src/enums.rs:699:9
thread 'main' panicked at 'assertion failed: (Some(left) => { left > right })
  left: 5
 right: 5
', src/enums.rs:679:9