moonpool_core/
error.rs

1//! Error types for simulation operations.
2
3use thiserror::Error;
4
5/// Errors that can occur during simulation operations.
6#[derive(Debug, Clone, PartialEq, Eq, Error)]
7pub enum SimulationError {
8    /// The simulation has been shut down and is no longer accessible.
9    #[error("Simulation has been shut down")]
10    SimulationShutdown,
11    /// The simulation is in an invalid state.
12    #[error("Invalid simulation state: {0}")]
13    InvalidState(String),
14    /// An I/O error occurred during simulation.
15    #[error("I/O error: {0}")]
16    IoError(String),
17}
18
19/// A type alias for `Result<T, SimulationError>`.
20pub type SimulationResult<T> = Result<T, SimulationError>;
21
22impl From<std::io::Error> for SimulationError {
23    fn from(err: std::io::Error) -> Self {
24        SimulationError::IoError(err.to_string())
25    }
26}