# Error code E0574

Something other than a struct, variant or union has been used when one was expected.

Erroneous code example:

    #![allow(unused)]
    fn main() {
    mod mordor {}

    let sauron = mordor { x: () }; // error!

    enum Jak {
        Daxter { i: isize },
    }

    let eco = Jak::Daxter { i: 1 };
    match eco {
        Jak { i } => {} // error!
    }
    }

In all these errors, a type was expected. For example, in the first error, we tried to instantiate the `mordor` module, which is impossible. If you want to instantiate a type inside a module, you can do it as follow:

    #![allow(unused)]
    fn main() {
    mod mordor {
        pub struct TheRing {
            pub x: usize,
        }
    }

    let sauron = mordor::TheRing { x: 1 }; // ok!
    }

In the second error, we tried to bind the `Jak` enum directly, which is not possible: you can only bind one of its variants. To do so:

    #![allow(unused)]
    fn main() {
    enum Jak {
        Daxter { i: isize },
    }

    let eco = Jak::Daxter { i: 1 };
    match eco {
        Jak::Daxter { i } => {} // ok!
    }
    }