#unwrap #macro-use #checked

no-std safe_unwrap

The safe_unwrap crate allows unwrapping and annotating that the unwrap will never fail. Does not require std.

6 releases (3 breaking)

Uses old Rust 2015

0.4.1 Apr 10, 2018
0.4.0 Mar 13, 2018
0.3.1 Mar 13, 2018
0.2.0 Apr 26, 2017
0.1.1 Dec 30, 2016

#1882 in Rust patterns

Download history 25/week @ 2024-12-10 32/week @ 2024-12-17 11/week @ 2025-01-07 22/week @ 2025-01-14 28/week @ 2025-01-21 30/week @ 2025-01-28 84/week @ 2025-02-04 92/week @ 2025-02-11 165/week @ 2025-02-18 159/week @ 2025-02-25 25/week @ 2025-03-04 21/week @ 2025-03-11 84/week @ 2025-03-18 329/week @ 2025-03-25

486 downloads per month

MIT license

9KB
133 lines

safe_unwrap

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.

The crate does not require std.

No runtime deps

Features