Macro trackable::track_assert_some
[−]
[src]
macro_rules! track_assert_some { ($expr:expr, $error_kind:expr) => { ... }; ($expr:expr, $error_kind:expr; $($value:expr),+) => { ... }; ($expr:expr, $error_kind:expr, $message:expr) => { ... }; ($expr:expr, $error_kind:expr, $message:expr; $($value:expr),+) => { ... }; ($expr:expr, $error_kind:expr, $fmt:expr, $($arg:tt)*) => { ... }; }
Trackable assertion for Option
values.
This is a simple wrapper of the track_panic!
macro.
It will call track_panic!
if $expr
is evaluated to None
.
Examples
use trackable::error::{Failed, Failure}; fn trackable_checked_sub(a: u32, b: u32) -> Result<u32, Failure> { let n = track_assert_some!(a.checked_sub(b), Failed); Ok(n) } let r = trackable_checked_sub(10, 2); // Ok assert_eq!(r.ok(), Some(8)); let r = trackable_checked_sub(2, 10); // Err assert!(r.is_err()); assert_eq!(format!("\n{}", r.err().unwrap()).replace('\\', "/"), r#" Failed (cause; assertion failed: `a.checked_sub(b).is_some()`) HISTORY: [0] at src/macros.rs:9 "#);