1use std::fmt;
4
5#[derive(Debug, Clone)]
7pub enum AnalysisError {
8 InvalidInput(String),
10
11 DecodingError(String),
13
14 ProcessingError(String),
16
17 NotImplemented(String),
19
20 NumericalError(String),
22}
23
24impl fmt::Display for AnalysisError {
25 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
26 match self {
27 AnalysisError::InvalidInput(msg) => write!(f, "Invalid input: {}", msg),
28 AnalysisError::DecodingError(msg) => write!(f, "Decoding error: {}", msg),
29 AnalysisError::ProcessingError(msg) => write!(f, "Processing error: {}", msg),
30 AnalysisError::NotImplemented(msg) => write!(f, "Not implemented: {}", msg),
31 AnalysisError::NumericalError(msg) => write!(f, "Numerical error: {}", msg),
32 }
33 }
34}
35
36impl std::error::Error for AnalysisError {}
37