An unknown tuple struct/variant has been used.
Erroneous code example:
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:
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:
struct Type(u32); enum Foo { Bar(u32), } use Foo::*; let Type(x) = Type(12); // ok! match Type(12) { Type(x) => {} // ok! _ => {} }