use mindset::builder::{simple_transition, StateMachineBuilder};
use mindset::state_enum;
state_enum! {
enum ConnectionState {
Disconnected,
Connecting,
Connected,
}
final: [Connected]
}
fn main() {
println!("=== Basic State Machine Example ===\n");
let machine = StateMachineBuilder::<ConnectionState, ()>::new()
.initial(ConnectionState::Disconnected)
.transitions(vec![
simple_transition(ConnectionState::Disconnected, ConnectionState::Connecting),
simple_transition(ConnectionState::Connecting, ConnectionState::Connected),
])
.build()
.unwrap();
println!("State machine created successfully!");
println!("Initial state: {:?}", machine.current_state());
println!("Is in final state: {}", machine.is_final());
println!("\n=== Example Complete ===");
}