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) => { ... };
}
Expand description
Asserts that an Option is Some
§Parameters
&option
A reference to anOption
.&value
(optional) A reference to an item to compare toSome
’s inner value.
§Dependencies
- All content must implement Debug
value
must be comparable toOk
’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