Expand description
Small library providing some macros helpful for asserting. The API is very
similar to the API provided by the stdlib’s own
assert_eq!
, assert_ne!
,
debug_assert_eq!
, and
debug_assert_ne!
.
Name | Enabled | Equivalent to |
---|---|---|
assert_le! | Always | assert!(a <= b) |
assert_lt! | Always | assert!(a < b) |
assert_ge! | Always | assert!(a >= b) |
assert_gt! | Always | assert!(a > b) |
debug_assert_le! | if cfg!(debug_assertions) | debug_assert!(a <= b) |
debug_assert_lt! | if cfg!(debug_assertions) | debug_assert!(a < b) |
debug_assert_ge! | if cfg!(debug_assertions) | debug_assert!(a >= b) |
debug_assert_gt! | if cfg!(debug_assertions) | debug_assert!(a > b) |
debug_unreachable! | if cfg!(debug_assertions) | unreachable! when debug_assertions are on. |
When one of the assertions fails, it prints out a message like the following:
thread 'main' panicked at 'assertion failed: `left < right`
left: `4`,
right: `3`', src/main.rs:47:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
§Example
use more_asserts as ma;
#[derive(Debug, PartialEq, PartialOrd)]
enum Example { Foo, Bar }
ma::assert_le!(3, 4);
ma::assert_ge!(
10, 10,
"You can pass a message too (just like `assert_eq!`)",
);
ma::debug_assert_lt!(
1.3, 4.5,
"Format syntax is supported ({}).",
"also like `assert_eq!`"
);
ma::assert_gt!(
Example::Bar, Example::Foo,
"It works on anything that implements PartialOrd and Debug!",
);
Macros§
- Panics if the first expression is not greater than or equal to the second.
- Panics if the first expression is not strictly greater than the second.
- Panics if the first expression is not less than or equal to the second.
- Panics if the first expression is not strictly less than the second.
- Same as
assert_ge!
in builds with debug assertions enabled, and a no-op otherwise. - Same as
assert_gt!
in builds with debug assertions enabled, and a no-op otherwise. - Same as
assert_le!
in builds with debug assertions enabled, and a no-op otherwise. - Same as
assert_lt!
in builds with debug assertions enabled, and a no-op otherwise. - Panics if reached when debug assertions are enabled.