#[derive(Debug, thiserror::Error)]
pub enum RiichiError {
#[error("Parse error on '{input}': {message}")]
Parse { input: String, message: String },
#[error("Invalid action: {message}")]
InvalidAction { message: String },
#[error("Invalid state: {message}")]
InvalidState { message: String },
#[error("Serialization error: {message}")]
Serialization { message: String },
}
pub type RiichiResult<T> = Result<T, RiichiError>;
#[cfg(feature = "python")]
impl From<RiichiError> for pyo3::PyErr {
fn from(err: RiichiError) -> pyo3::PyErr {
pyo3::exceptions::PyValueError::new_err(err.to_string())
}
}