rust/library/std
Mara 04045cc83f
Rollup merge of #82770 - m-ou-se:assert-match, r=joshtriplett
Add assert_matches macro.

This adds `assert_matches!(expression, pattern)`.

Unlike the other asserts, this one ~~consumes the expression~~ may consume the expression, to be able to match the pattern. (It could add a `&` implicitly, but that's noticable in the pattern, and will make a consuming guard impossible.)

See https://github.com/rust-lang/rust/issues/62633#issuecomment-790737853

This re-uses the same `left: .. right: ..` output as the `assert_eq` and `assert_ne` macros, but with the pattern as the right part:

assert_eq:
```
assertion failed: `(left == right)`
  left: `Some("asdf")`,
 right: `None`
```
assert_matches:
```
assertion failed: `(left matches right)`
  left: `Ok("asdf")`,
 right: `Err(_)`
```

cc ```@cuviper```
2021-03-05 10:57:23 +01:00
..
benches
src Rollup merge of #82770 - m-ou-se:assert-match, r=joshtriplett 2021-03-05 10:57:23 +01:00
tests Fix SGX CI, take 3 2020-12-07 15:22:34 +01:00
Cargo.toml Bump minimum libc version to 0.2.85 for std. 2021-02-24 12:47:28 +01:00
build.rs Drop support for cloudabi targets 2020-11-22 17:11:41 -05:00