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}