matches2
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
.
unwrap_match!
macro
The unwrap_match!
macro is a general unwrap, used as such:
let output = unwrap_match!;
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_match!;
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.