Macro vesta::case [−][src]
case!() { /* proc-macro */ }
Match on the cases of a value implementing Match
.
This macro is the safe and efficient way to match on something; it is faster than using chains
of try_case
, but safe because it ensures exhaustiveness when required.
Syntax for this macro is very similar to the syntax for match
in Rust, except constructor
names are replaced with their corresponding numerals, as defined by implementations of Case
.
Omitting a parenthesized pattern after a numeral N
is equivalent to the pattern N(_)
, i.e.
the pattern matching all values tagged with N
.
Examples
use vesta::case; let option = Some("thing"); case!(option { 0 => assert!(false), 1(s) => assert_eq!(s, "thing"), });