Error code E0164

Something which is neither a tuple struct nor a tuple variant was used as a pattern.

Erroneous code example:

#![allow(unused)] fn main() { enum A { B, C, } impl A { fn new() {} } fn bar(foo: A) { match foo { A::new() => (), // error! _ => {} } } }

This error means that an attempt was made to match something which is neither a tuple struct nor a tuple variant. Only these two elements are allowed as a pattern:

#![allow(unused)] fn main() { enum A { B, C, } impl A { fn new() {} } fn bar(foo: A) { match foo { A::B => (), // ok! _ => {} } } }