How to Implement the State Pattern in Rust with Enums

Implement the State Pattern in Rust using an enum for states and a trait to define behavior for each state.

Implement the State Pattern in Rust by defining an enum for states and a trait for behavior, then using match to delegate logic.

trait State {
    fn handle(&self, event: &str) -> String;
}

enum StateEnum {
    Open,
    Closed,
}

impl State for StateEnum {
    fn handle(&self, event: &str) -> String {
        match self {
            StateEnum::Open => format!("Open: {}", event),
            StateEnum::Closed => format!("Closed: {}", event),
        }
    }
}

fn main() {
    let state = StateEnum::Open;
    println!("{}", state.handle("clicked"));
}