Added support for using => to do extra assertions on destructured data #3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When working with complex nested data structures I often have a need to do custom assertions on the data itself. Also in Rust some data can only be matched (no
Eq
) and some can only be compared (e.g. float values).So I added support for
=>
in the macro to allow any number of extra custom assertions on data itself leaving the main pattern to assert on data shape only.Here are some of examples from my code base.
See how
assert_matches!
asserts on the shape of data whileassert_eq!
orassert!
on particular values. As added bonus if some data is wrong you get precise location of the failedassert_eq!
rather than generic "does not match" error.Also it is possible to do data extraction and nesting of
assert_matches!
: