[−][src]Macro trackable::track_assert_some
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 "#);