1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum GridEngineError {
5 #[error(transparent)]
6 InnerGrid(#[from] InnerGridError),
7
8 #[error(transparent)]
9 Item(#[from] ItemError),
10
11 #[error("UnhandledError: {0}")]
13 Unhandled(Box<dyn std::error::Error>),
14}
15
16#[derive(Error, Debug)]
17pub enum InnerGridError {
18 #[error("Out of bounds access: x: {x}, y: {y}")]
19 OutOfBoundsAccess { x: usize, y: usize },
20
21 #[error("RawGrid item not matching grid items: id: {id}")]
22 MismatchedGridItem { id: String },
23}
24
25#[derive(Error, Debug)]
26pub enum ItemError {
27 #[error("Item not found: {id}")]
28 ItemNotFound { id: String },
29
30 #[error("Item already exists: {id}")]
31 ItemAlreadyExists { id: String },
32}
33
34#[derive(Error, Debug)]
35pub enum GridEventError {
36 #[error("Failed to generate listener id")]
37 ListenerIdNotGenerated,
38}