unreachable!

Rust има няколко интересни начини за стратегическо гърмене с ясна индикация в кода. Един такъв е 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(_)           => unreachable!(), // compile error if commented out
        None              => println!("None")
    }
}

Както и да го гледаме, едно число ще е или неотрицателно, или отрицателно. Няма как да влезем в ръкава Some(_), понеже вече ще сме влезли в някой друг ръкав. Но Rust няма как да знае това, така че можем да сложим unreachable!(). Ако случайно се объркаме и, да речем, напишем n > 0 вместо n >= 0, поне ще получим грешка, която ще ни укаже, че сме омазали нещата. А в кода си личи защо ще има грешка в тази ситуация.

Официалната документация: https://doc.rust-lang.org/std/macro.unreachable.html