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 holds {counts} counts where the model predicts {predicted}"
38 )]
39 UnmodelledCounts {
40 run: &'static str,
41 bin: usize,
42 counts: f64,
43 predicted: f64,
44 },
45}
46
47impl From<TransmissionError> for PipelineError {
48 fn from(e: TransmissionError) -> Self {
49 match e {
50 TransmissionError::Cancelled => PipelineError::Cancelled,
51 other => PipelineError::Transmission(other),
52 }
53 }
54}
55
56impl From<FittingError> for PipelineError {
57 fn from(e: FittingError) -> Self {
58 PipelineError::Fitting(e)
59 }
60}
61
62impl From<FlightTimeGridError> for PipelineError {
63 fn from(e: FlightTimeGridError) -> Self {
64 PipelineError::FlightTimeGrid(e)
65 }
66}