Available on crate feature
test
only.Expand description
Assertion utilities.
§Soft assertions
Soft assertions are like debug assertions, but they can be toggled on and off at runtime in a release build.
They are useful in two scenarios:
- When a failed assertion should result in a log message rather a process crash.
- When evaluating the condition is too expensive to evaluate in production deployments.
When soft assertions are disabled, the performance cost of each assertion is one branch on an atomic.
Ore provides the following macros to make soft assertions:
soft_assert_or_log
soft_assert_eq_or_log
soft_assert_ne_or_log
soft_panic_or_log
soft_assert_no_log
soft_assert_eq_no_log
soft_assert_ne_no_log
The _or_log
variants should be used by default, as they allow us to find
failed condition checks in production. The _no_log
variants are silent
in production and should only be used when performance considerations
prohibit the use of the logging variants.
Due to limitations in Rust, these macros are exported at the crate root.
Statics§
- Whether to enable soft assertions.