[][src]Macro inconceivable::inconceivable

macro_rules! inconceivable {
    () => { ... };
    ($msg: expr) => { ... };
    ($msg: expr,) => { ... };
    ($fmt: expr, $($arg:tt)*) => { ... };
}

inconceivable is a macro which closely parallels std::unreachable, or std::panic.

The primary difference is that when this crate is configured with the ub_inconceivable option it will emit the core::hint::unreachable_unchecked to hint for the compiler to understand a condition should never occur.

Generally compilers assume UB won't happen. This macro offers the "best of both worlds", it provides a solid way of asserting/testing behavior in debug builds, and no cost in properly configured release builds.