maflow

Crates.iomaflow
lib.rsmaflow
version0.1.0
sourcesrc
created_at2024-07-01 16:46:21.952578
updated_at2024-07-01 16:46:21.952578
descriptionFlow macros: basically unwrap for return, continue and break
homepage
repositoryhttps://github.com/dekirisu/maflow
max_upload_size
id1288858
size19,607
Dekirisu (dekirisu)

documentation

README

maflow

Simple Macros, changing the flow of development:

  • kill!( flow ) panics
  • exit!( flow ) returns ::default()
  • next!( flow ) continues
  • hold!( flow ) breaks

Flow can be:

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

Example

[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 ..
    }
}

Also..

..implements the trait YayNay for Result, Option and bool with those methods:

  • .yay() returns true if Ok(..) Some(..) or true
  • .nay() returns true for the negative counter part

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Commit count: 5

cargo fmt