| Crates.io | unwrap_let |
| lib.rs | unwrap_let |
| version | 0.1.0 |
| created_at | 2023-10-20 05:19:29.442238+00 |
| updated_at | 2023-10-20 05:19:29.442238+00 |
| description | A Rust macro for quickly unwrapping a refutable pattern. |
| homepage | |
| repository | https://github.com/chainlight-io/unwrap_let |
| max_upload_size | |
| id | 1008674 |
| size | 5,540 |
unwrap_let!A Rust macro for quickly unwrapping a refutable pattern.
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;
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)
}
unwrap_let internally uses "let-else" statement, which was introduced in Rust 1.65 (Nov 2022).
This project is licensed under the (MIT license)[./LICENSE].