#pattern #macro #quickly #unwrapping #unwrap #let #refutable

no-std unwrap_let

一个用于快速解包可证明模式的 Rust 宏

1 个不稳定版本

0.1.0 2023 年 10 月 20 日

2148Rust 模式

29 每月下载次数

MIT 许可证

5KB

unwrap_let!

一个用于快速解包可证明模式的 Rust 宏。

安装

通过运行 cargo add unwrap_let 或编辑 Cargo.tomlunwrap_let 添加到您的依赖项中。

[dependencies]
unwrap_let = "0.1.0"

然后,通过 [macro_use] 或一个 use 语句来导入 unwrap_let 宏。

// 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)
}

最低支持的 Rust 版本

unwrap_let 在内部使用 "let-else" 语句,该语句于 Rust 1.65 (2022 年 11 月) 中引入。

许可证

本项目采用 (MIT 许可证)[./LICENSE] 许可。

无运行时依赖