1use core::fmt;
6
7#[derive(Clone, Debug, Eq, PartialEq)]
9pub enum ProbError {
10 Shape {
12 message: &'static str,
14 },
15 InvalidPrior {
17 message: &'static str,
19 },
20 Inference {
22 message: &'static str,
24 },
25 Numerical {
27 message: String,
29 },
30 MissingDiagnostics {
32 message: String,
34 },
35}
36
37impl fmt::Display for ProbError {
38 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
39 match self {
40 Self::Shape { message } => write!(f, "shape error: {message}"),
41 Self::InvalidPrior { message } => write!(f, "invalid prior: {message}"),
42 Self::Inference { message } => write!(f, "inference error: {message}"),
43 Self::Numerical { message } => write!(f, "numerical error: {message}"),
44 Self::MissingDiagnostics { message } => {
45 write!(f, "missing diagnostics: {message}")
46 }
47 }
48 }
49}
50
51impl std::error::Error for ProbError {}