Crate safe_unwrap [] [src]

Annotate unwraps as manually checked

The safe_unwrap macros allows unwrapping and annotating that the unwrap will never fail.

An example:

#[macro_use]
extern crate safe_unwrap;

fn main() {
   let res = Some(42);

   // we know that unwrapping res will never fail, so it is safe to call unwrap
   let val = safe_unwrap!("is constant value", res);

   assert_eq!(val, 42);
}

In release builds, safe_unwrap!(expr) is equivalent to expr.unwrap(); in debug builds, expect() will be called with a message indicating that the assumed invariant has been violated.

Does not require std.

Macros

safe_unwrap