#pattern-match #match #macro #options #convert #partial #shorthand

match_opt

A macro for turning a partial match into a full match returning an option

3 releases

0.1.2 Feb 8, 2022
0.1.1 Feb 5, 2022
0.1.0 Feb 5, 2022

#1662 in Rust patterns

Download history 6695/week @ 2024-08-12 7184/week @ 2024-08-19 6733/week @ 2024-08-26 7194/week @ 2024-09-02 8222/week @ 2024-09-09 7414/week @ 2024-09-16 7475/week @ 2024-09-23 8429/week @ 2024-09-30 9844/week @ 2024-10-07 9574/week @ 2024-10-14 9758/week @ 2024-10-21 8533/week @ 2024-10-28 4445/week @ 2024-11-04 6170/week @ 2024-11-11 7304/week @ 2024-11-18 5607/week @ 2024-11-25

23,812 downloads per month

MIT license

5KB

match_opt Build Status

match_opt is a macro that converts a partial pattern-match into one that returns an Option. This can be used as a shorthand to simplify a complex pattern-match, for which only one or few cases are useful.

For example:

let some_results = vec!["1", "2", "3", "foo", "bar", "4"].map(|v| v.parse::<usize>());
let some_pattern_match = some_results.filter_map{|x| match x {
    Ok(v) if v > 2 => Some(v),
    _ => None,
}};
// this is equivalent to
let alternate_pattern_match = some_results.filter_map{|x| match_opt!(x, OK(v) if v > 2 => v)};

This crate has no dependencies.

Documentation

The API can be found here.

Installation

Add the following line to the dependencies of your Cargo.toml:

match_opt = "0.1.0"

Contributors

The authors of this code is François Garillot (@huitseeker).

License

This project is MIT licensed.

No runtime deps