ifengine/
errors.rs

1use thiserror::Error;
2
3#[cfg(feature = "serde")]
4use serde::{Deserialize, Serialize};
5
6#[derive(
7    Debug,
8    Error,
9    std::hash::Hash,
10    PartialEq,
11    Eq,
12    Clone,
13)]
14#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
15pub enum GameError {
16    #[error("NoStack")]
17    NoStack,
18    #[error("NoPage")]
19    NoPage,
20    #[error("GameEnd")]
21    End,
22}
23
24#[derive(
25    Debug,
26    Error,
27    std::hash::Hash,
28    PartialEq,
29    Eq,
30    Clone,
31)]
32#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
33pub enum SimEnd {
34    #[error("⟨{0}⟩")]
35    GameError(#[from] GameError),
36
37    #[error("{0}")]
38    Tunnel(String),
39
40    #[error("⟨Exit⟩")]
41    TunnelExit,
42
43    #[error("⟨{0}⟩")]
44    Custom(String),
45}