matches2

Crates.iomatches2
lib.rsmatches2
version1.2.1
sourcesrc
created_at2018-06-10 13:32:13.854136
updated_at2019-11-24 05:34:41.061761
descriptionA macro to evaluate, as a boolean, whether an expression matches a pattern.
homepage
repositoryhttps://github.com/Laaas/matches2
max_upload_size
id69461
size11,094
Jonathan Chan Kwan Yin (SOF3)

documentation

https://docs.rs/matches2/

README

matches2

Crates.io License

This is a fork of the matches crate with an extra unwrap_match! and option_match! macro, and also better error messages for assert_matches.

Documentation

unwrap_match! macro

The unwrap_match! macro is a general unwrap, used as such:

	let output = unwrap_match!(input, AnEnum::Variant(a) | AnEnum::OtherVariant(a) if a < 5 * 2 => a);

If it fails, it emits a descriptive error including the pattern and the input, for this reason input must implement Debug, unless you provide a custom error message as the last arguments, in the same way you'd use format!.

option_match! macro

The option_match! macro is like unwrap_match!, except instead of failing, it just returns an Option.

	let output: Option<_> = option_match!(input, AnEnum::Variant(a) | AnEnum::OtherVariant(a) if a < 5 * 2 => a);

Error message improvements

The original matches crate would emit horrible errors when assertions failed, outputting a pattern such as Some(_) as Some ( _ ). This version has properly formatted errors, so you will never experience this again.

Commit count: 46

cargo fmt