#flow #unwrap #macro

maflow

流程宏:基本上是用于返回、继续和断言的 unwrap

1 个不稳定版本

0.1.0 2024年7月1日

#4#unwrap

MIT/Apache

7KB
73

maflow

简单的 Macro,改变开发流程

  • kill!( flow ) 引发恐慌
  • exit!( flow ) 返回 ::default()
  • next!( flow ) 继续
  • hold!( flow ) 断言

Flow 可以是

  1. Option ..!{ inner = option }if Some(inner) = option {..}
  2. Result ..!{ inner = result }if Ok(inner) = option {..}
  3. bool ..!{ if bool }if bool {..}

示例

[dependencies]
maflow = "0.1"
use maflow::*;
fn main(){
    // Options and Results
    let some = Some(true);
    kill!{is_true = some} // same as .unwrap()
    exit!{is_true = some} // returns default() if None => ()
    for i in 0..9 {
        next!{is_true = some} // continues if None
        hold!{is_true = some} // breaks if None
        if is_true {}
    }
    // Conditional
    let is_true = true;
    kill!{if is_true} // panics if ..
    exit!{if is_true} // returns default() if ..
    for i in 0..9 {
        next!{if is_true} // continues if ..
        hold!{if is_true} // breaks if ..
    }
}

另外...

还实现了 YayNay trait,用于 ResultOptionbool,具有这些方法

  • .yay() 返回 true,如果 Ok(..) Some(..)true
  • .nay() 对负数部分返回 true

许可证

根据您选择的任何一种,在 Apache License, Version 2.0MIT 许可证 下授权。
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在此 crate 中的任何贡献,均应如上双许可,不附加任何额外条款或条件。

无运行时依赖