nereids_pipeline/
error.rs1use nereids_fitting::error::FittingError;
4use nereids_physics::flight_time_grid::FlightTimeGridError;
5use nereids_physics::transmission::TransmissionError;
6
7#[derive(Debug, thiserror::Error)]
9pub enum PipelineError {
10 #[error("Shape mismatch: {0}")]
12 ShapeMismatch(String),
13
14 #[error("Invalid parameter: {0}")]
16 InvalidParameter(String),
17
18 #[error("Operation cancelled")]
20 Cancelled,
21
22 #[error("Transmission error: {0}")]
24 Transmission(TransmissionError),
25
26 #[error("Fitting error: {0}")]
28 Fitting(FittingError),
29
30 #[error("Flight-time grid: {0}")]
32 FlightTimeGrid(FlightTimeGridError),
33
34 #[error(
37 "bin {bin} of the {run} run in region {region} holds {counts} counts where the model \
38 predicts {predicted}"
39 )]
40 UnmodelledCounts {
41 region: usize,
42 run: &'static str,
43 bin: usize,
44 counts: f64,
45 predicted: f64,
46 },
47}
48
49impl From<TransmissionError> for PipelineError {
50 fn from(e: TransmissionError) -> Self {
51 match e {
52 TransmissionError::Cancelled => PipelineError::Cancelled,
53 other => PipelineError::Transmission(other),
54 }
55 }
56}
57
58impl From<FittingError> for PipelineError {
59 fn from(e: FittingError) -> Self {
60 PipelineError::Fitting(e)
61 }
62}
63
64impl From<FlightTimeGridError> for PipelineError {
65 fn from(e: FlightTimeGridError) -> Self {
66 PipelineError::FlightTimeGrid(e)
67 }
68}