use crate::app::Phase;
use starbase_macros::{system, State};
mod starbase {
pub use crate::*;
}
#[derive(Debug, State)]
pub struct AppState {
pub phase: Phase,
}
#[system]
pub async fn start_startup_phase(states: StatesMut) {
states.set(AppState {
phase: Phase::Startup,
});
}
#[system]
pub async fn start_analyze_phase(app_state: StateMut<AppState>) {
app_state.phase = Phase::Analyze;
}
#[system]
pub async fn start_execute_phase(app_state: StateMut<AppState>) {
app_state.phase = Phase::Execute;
}
#[system]
pub async fn start_shutdown_phase(app_state: StateMut<AppState>) {
app_state.phase = Phase::Shutdown;
}