std::debug_assert!
[−]
macro_rules! debug_assert { ( $ ( $ arg : tt ) * ) => { ... }; }
Ensure that a boolean expression is true
at runtime.
This will invoke the panic!
macro if the provided expression cannot be
evaluated to true
at runtime.
Like assert!
, this macro also has a second version, where a custom panic
message can be provided.
Unlike assert!
, debug_assert!
statements are only enabled in non
optimized builds by default. An optimized build will omit all
debug_assert!
statements unless -C debug-assertions
is passed to the
compiler. This makes debug_assert!
useful for checks that are too
expensive to be present in a release build but may be helpful during
development.
Examples
// the panic message for these assertions is the stringified value of the // expression given. debug_assert!(true); fn some_expensive_computation() -> bool { true } // a very simple function debug_assert!(some_expensive_computation()); // assert with a custom message let x = true; debug_assert!(x, "x wasn't true!"); let a = 3; let b = 27; debug_assert!(a + b == 30, "a = {}, b = {}", a, b);