use thiserror::Error;
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
#[derive(Debug, Error, std::hash::Hash, PartialEq, Eq, Clone)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub enum GameError {
#[error("NoStack")]
NoStack,
#[error("NoPage")]
NoPage,
#[error("GameEnd")]
End,
}
#[derive(Debug, Error, std::hash::Hash, PartialEq, Eq, Clone)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub enum SimEnd {
#[error("⟨{0}⟩")]
GameError(#[from] GameError),
#[error("{0}")]
Tunnel(String),
#[error("⟨Exit⟩")]
TunnelExit,
#[error("⟨{0}⟩")]
Custom(String),
}