[][src]Macro xkcd_unreachable::xkcd_unreachable

macro_rules! xkcd_unreachable {
    () => { ... };
    ($dollar sub_msg:expr) => { ... };
    ($dollar fmt:expr, $dollar ($dollar arg:tt)*) => { ... };
}

Macro indicating unreachable code. This is equivalent to unreachable!(), except that it displays the message in xkcd 2200.

Example

use xkcd_unreachable::xkcd_unreachable;

fn foo(x: Option<i32>) {
    match x {
        Some(n) if n >= 0 => println!("Some(Non-negative)"),
        Some(n) if n <  0 => println!("Some(Negative)"),
        Some(_)           => xkcd_unreachable!(),
        None              => println!("None")
    }
}

Output if reached

⚠ ERROR

If you're seeing this, the code is in what
I thought was an unreachable state.

I could give you advice for what to do.
But honestly, why should you trust me?
I clearly screwed this up. I'm writing a
message that should never appear, yet
I know it will probably appear someday.

On a deep level, I know I'm not
up to this task. I'm so sorry.

<https://xkcd.com/2200/>