#控制 # #ctrl #选项 # #控制流

ctrl_macros

Option 和 Result 的控制流宏

1 个不稳定版本

0.1.0 2022 年 8 月 2 日

#1929Rust 模式

MIT/Apache 许可协议

5KB
96

README

OptionResult 的控制宏。

帮助您将此内容

fn returns_early_with_value(input: Result<i32, String>) {
    // Early return when something is wrong.
    let input: i32 = match input {
        Ok(value) => value,
        Err(_) => return,
    };

    // Use it normally below...
    println!("Input is: {}", input);
}

转换为

use ctrl_macros::{ok_or_return};

fn returns_early_with_value(input: Result<i32, String>) {
    let input: i32 = ok_or_return!(input);
    println!("Input is: {}", input);
}

示例

let x = ok_or!(x, return 42);
for i in 0..5 {
    let x = ok_or_continue!(x);
}
for i in 0..5 {
    let x = ok_or_break!(x);
}

some_or 等价表达式

some_or!
some_or_return!
some_or_continue!
some_or_break!

许可证

ctrl_macros 可在以下许可证下使用双许可协议:

除非您明确声明,否则根据 Apache-2.0 许可协议定义的,您有意提交以包含在工作中的任何贡献,都应以上述双许可协议使用,不附加任何其他条款或条件。

无运行时依赖