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"));
}