## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# 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!
        _ => {}
    }
    }