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);