Skip to content

Enumy

Enumy są bardzo potężne. Każde pole w enumie zachowuje się jak struktura - może zawierać w sobie też inne enumy, czy struktury. Dla enumów można też definiować funkcje w bloku impl.

Oto przykładowe tworzenie złożonych enumów:

struct Button {
    color : String,
    background_color : String,
    border_radius : i8,
}

enum Direction {
    UP, DOWN, LEFT, RIGHT 
}

enum UIEvent {
    ButtonClicked(Button), Scroll(Direction), KeyPressed(char)
}

fn main() {
    let clicked = UIEvent::ButtonClicked(Button{
        color: "red".to_string(),
        background_color: "white".to_string(),
        border_radius: 15,
    });

    let scroll = UIEvent::Scroll(Direction::UP);
}