try_utils

A small collections of macros for adding try guards in rust

Examples

try_utils::try_return

```rust use tryutils::tryreturn;

fn myfunc1(val: Option) -> i32 { let val = tryreturn!(val, { // do some expensive computation here panic!() }); val }

asserteq!(myfunc1(Some(10)), 10); // the expensive computation will not be run

fn myfunc2(val: Option) -> i32 { let val = tryreturn!(val, 1234); val } asserteq!(myfunc2(Some(10)), 10); asserteq!(myfunc2(None), 1234);

fn myfunc3(val: Option) { let _ = tryreturn!(val); panic!(); } my_func3(None); ```

try_utils::try_continue

```rust use tryutils::trycontinue;

'label: for _ in 0..10 { for _ in 0..10 { let : u32 = trycontinue!(None, 'label); panic!(); } panic!(); }

for _ in 0..10 { let val: u32 = trycontinue!(Some(10)); asserteq!(val, 10); } ```

try_utils::try_break

```rust use tryutils::trybreak;

'label: for _ in 0..10 { for _ in 0..10 { let : u32 = trybreak!(None, 'label); panic!(); } panic!(); }

for _ in 0..10 { let val: u32 = trybreak!(Some(10)); asserteq!(val, 10); } ```