--- title: Structs & Enums description: Defining structs and enums with named, tuple, and struct variants. icon: Box --- ### Structs ```mist pub struct Point { i32 x; i32 y; } pub struct Generic { T value; } ``` Fields can be public or private: ```mist struct User { pub str& name; i32 age; // private } ``` ### Enums ```mist pub enum Option { Some(T); None; } pub enum Message { Quit; Move(i32, i32); Write { str& content; i32 length; }; } ``` Enum variants can be: - **Named** — `Variant` - **Tuple** — `Variant(T1, T2)` - **Struct** — `Variant { T1 field1; T2 field2; }`