# 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

fn main() { // 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); }

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

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize`)