Skip to content

L-as/matches2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Macros for rust for dealing with patterns

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages