grid_engine/
error.rs

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    // Temporary error for unhandled errors, must be removed and all errors should be handled
12    #[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}