Error code E0531
An unknown tuple struct/variant has been used.
Erroneous code example:
#![allow(unused)] fn main() { let Type(x) = Type(12); // error! match Bar(12) { Bar(x) => {} // error! _ => {} } }
In most cases, it's either a forgotten import or a typo. However, let's look at how you can have such a type:
#![allow(unused)] fn main() { struct Type(u32); // this is a tuple struct enum Foo { Bar(u32), // this is a tuple variant } use Foo::*; // To use Foo's variant directly, we need to import them in // the scope. }
Either way, it should work fine with our previous code:
#![allow(unused)] fn main() { struct Type(u32); enum Foo { Bar(u32), } use Foo::*; let Type(x) = Type(12); // ok! match Type(12) { Type(x) => {} // ok! _ => {} } }