unwrap_let 0.1.0

A Rust macro for quickly unwrapping a refutable pattern.
Documentation
  • Coverage
  • 100%
    2 out of 2 items documented1 out of 1 items with examples
  • Size
  • Source code size: 5.21 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 488.96 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • chainlight-io/unwrap_let
    11 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • qwaz-theori github:chainlight-io:r-d

unwrap_let!

A Rust macro for quickly unwrapping a refutable pattern.

Install

Add unwrap_let to your dependency by running cargo add unwrap_let or editing Cargo.toml:

[dependencies]
unwrap_let = "0.1.0"

Then, import unwrap_let macro either by [macro_use] or a use statement.

// Option 1:
// Having this line in `lib.rs` or `main.rs` allows you to use `unwrap_let` in
// any file in your project without additional `use` statement.
#[macro_use]
extern crate unwrap_let;
// Option 2:
// Or, you can import it in each file that uses this macro.
use unwrap_let::unwrap_let;

Example

let val = Some(123);

unwrap_let!(Some(x) = val);
// `x` is defined
assert_eq!(x, 123);
enum Integer {
    Signed(i64),
    Unsigned(u64),
}

fn negate(unchecked_num: Integer) -> Integer {
    unwrap_let!(Integer::Signed(num) = unchecked_num, "expected a signed integer");
    Integer::Signed(-num)
}

Minimum Supported Rust Version

unwrap_let internally uses "let-else" statement, which was introduced in Rust 1.65 (Nov 2022).

License

This project is licensed under the (MIT license)[./LICENSE].