use crate::handler::node::NodeError; use crate::loader::LoaderError; use thiserror::Error; #[derive(Debug, Error)] pub enum EvaluationError { #[error("Loader error")] LoaderError(Box), #[error("Node error")] NodeError(Box), #[error("Depth limit exceeded")] DepthLimitExceeded, #[error("Node not found {0}")] NodeConnectError(String), } impl From for Box { fn from(error: LoaderError) -> Self { Box::new(EvaluationError::LoaderError(error.into())) } } impl From> for Box { fn from(error: Box) -> Self { Box::new(EvaluationError::LoaderError(error)) } } impl From for Box { fn from(error: NodeError) -> Self { Box::new(EvaluationError::NodeError(error.into())) } } impl From> for Box { fn from(error: Box) -> Self { Box::new(EvaluationError::NodeError(error)) } }