flowutils 0.1.0

A collection of utilities for control fow.
Documentation
use flowutils::unwrap_pattern;

enum T {
    A(i32),
    B(String, u64),
    C { p: usize, _q: f32, r: i8 },
}

fn main() {
    let some_enum = T::A(3);
    let inner = unwrap_pattern!(some_enum, T::A(x)=>x);
    assert_eq!(inner, 3);

    let some_enum = T::B(String::from("str"), 3);
    let tuple: (u64, String) = unwrap_pattern!(some_enum, T::B(var1, var2) => (var2, var1));
    assert_eq!(tuple, (3, String::from("str")));

    let some_enum = T::C {
        p: 9,
        _q: 8.0,
        r: 7,
    };
    let complex: usize = unwrap_pattern!(some_enum, T::C{p: var3, r: _var4, ..}=> var3);
    assert_eq!(complex, 9);
}