#条件 #赋值 #惰性求值

无 std 条件赋值

这是一个非常简单、小巧的 crate,旨在使条件赋值更加便捷。

2 个不稳定版本

0.2.0 2023 年 12 月 30 日
0.1.0 2023 年 12 月 25 日

#408无标准库

MIT/Apache

7KB

条件赋值

GitHub Workflow Status (with branch) Crates.io Crates.io (latest)

这是一个非常简单、小巧的 crate,旨在使条件赋值更加便捷。

目标

目标是使以下内容看起来更好。

let condition = 0 < 1;
let outcome = if condition {
    "true"
} else {
    "false"
};

示例

基本

急切

use conditional_assignment::Pick;

let condition = 0 < 1;
let outcome = condition.pick("true", "false");

惰性

use conditional_assignment::Pick;

let condition = 0 < 1;
let outcome = condition.pick_lazy(
    || {
        // This won't be evaluated and
        // panic when condition is false.
        assert!(condition);
        "true"
    },
    || {
        // This won't be evaluated and
        // panic when condition is true.
        assert!(!condition);
        "false"
    },
);

最低支持的 Rust 版本 (MSRV)

根据 cargo-msrv,MSRV 是 1.56.1。鉴于这个 crate 非常简单,MSRV 可能更低,但我没有检查。试试看!

许可证

根据您的选择,许可如下:

贡献

除非您明确说明,否则根据 Apache-2.0 许可证定义的,您有意提交的任何贡献,都应作为上述双重许可,不得附加任何额外条款或条件。

无运行时依赖