use thiserror::Error;
#[derive(Error, Debug)]
pub enum StateError {
#[error("State not found: {0}")]
StateNotFound(String),
#[error("Initial state not set")]
InitialStateNotSet,
#[error("No transition found for event: {0}")]
NoTransitionFound(String),
#[error("Invalid transition: {0}")]
InvalidTransition(String),
#[error("Invalid configuration: {0}")]
InvalidConfiguration(String),
#[error("JSON error: {0}")]
JsonError(#[from] serde_json::Error),
}
pub type Result<T> = std::result::Result<T, StateError>;