sounding_analysis/
error.rs1use std::{error::Error, fmt::Display};
3
4pub type Result<T> = std::result::Result<T, AnalysisError>;
6
7#[derive(Clone, Copy, PartialEq, Eq, Debug)]
9pub enum AnalysisError {
10 MissingProfile,
12 MissingValue,
14 NotEnoughData,
16 NoDataProfile,
18 InvalidInput,
20 InterpolationError,
22 FailedPrerequisite,
24 MetForError,
26}
27
28impl Display for AnalysisError {
29 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
30 use crate::AnalysisError::*;
31 match self {
32 MissingProfile => write!(f, "missing profile required for the analysis"),
33 MissingValue => write!(f, "missing value required for analysis"),
34 NotEnoughData => write!(f, "not enough data available for analysis"),
35 NoDataProfile => write!(f, "profile is full of missing values, cannot do analysis"),
36 InvalidInput => write!(f, "invalid input"),
37 InterpolationError => write!(f, "none value encountered during interpolation"),
38 FailedPrerequisite => write!(f, "failed a prerequisite for this analysis"),
39 MetForError => write!(f, "error bubbled up from metfor crate"),
40 }
41 }
42}
43
44impl Error for AnalysisError {}