1use crate::movement::MovementId;
2use crate::subsystem::SubsystemId;
3
4#[derive(Debug, thiserror::Error)]
5pub enum MovementError {
6 #[error("Movement Cache Error: Movement missing from cache ({id})")]
7 CacheError { id: MovementId },
8
9 #[error("Movement Creation Error: {e}")]
10 CreationError { e: anyhow::Error },
11
12 #[error("Incorrect Status Error: Attempt to incorrectly set movement to {status}")]
13 IncorrectStatus { status: String },
14
15 #[error("Invalid Subsystem ID: {id} does not exist")]
16 InvalidSubsystemId { id: SubsystemId },
17
18 #[error("Invalid Movement ID: {id} does not exist")]
19 InvalidMovementId { id: MovementId },
20
21 #[error("Movement Load Error: Unable to load movement ({id}) from persister: {e}")]
22 LoadError { id: MovementId, e: anyhow::Error },
23
24 #[error("Persist Movement Failed: Unable to persist changes to movement ({id}): {e}")]
25 PersisterError { id: MovementId, e: anyhow::Error },
26
27 #[error("Subsystem Error ({name}): {error}")]
28 SubsystemError { name: String, error: String },
29}