[−][src]Macro bugsalot::expect
Unwraps Options and Results, logging/breaking on errors, but unlike a.expect("msg")
this is nonfatal and continuable.
Other differences:
- Works on booleans
- Should breakpoint directly on the line of the unwrap!
Examples
use bugsalot::expect; let a = true; let _ : bool = expect!(a, "Couldn't do something", false); let _ : () = expect!(a, "Couldn't do something", ()); let _ : () = expect!(a, "Couldn't do something"); let _ : bool = expect!(a, "Couldn't do something", return); let a : Option<i32> = Some(42); let _ : i32 = expect!(a, "Couldn't do something", 0); let _ : () = expect!(a, "Couldn't do something", ()); let _ : () = expect!(a, "Couldn't do something"); let _ : i32 = expect!(a, "Couldn't do something", return); let a : Result<i32, &'static str> = Ok(42); let _ : i32 = expect!(a, "Couldn't do something", 0); let _ : () = expect!(a, "Couldn't do something", ()); let _ : () = expect!(a, "Couldn't do something"); let _ : i32 = expect!(a, "Couldn't do something", return); let a : *const i32 = &42; let _ : i32 = unsafe { *expect!(a, "Couldn't do something!", &12) }; let _ : () = expect!(a, "Couldn't do something!", ()); let _ : () = expect!(a, format!("String {}", 42)); let _ : i32 = unsafe { *expect!(a, &format!("String {}", 42), return) };