strafe_error/
float.rs

1use std::{
2    error::Error,
3    fmt::{Display, Error as FmtError, Formatter},
4};
5
6#[derive(Copy, Clone, Debug)]
7pub enum FloatError {
8    UnderflowError,
9    PrecisionError,
10    ProbabilityRangeError,
11    NaturalRangeError,
12    RealRangeError,
13    BadNumber,
14}
15
16impl Display for FloatError {
17    fn fmt(&self, fmt: &mut Formatter) -> Result<(), FmtError> {
18        match self {
19            FloatError::UnderflowError => write!(fmt, "Calculation underflowed"),
20            FloatError::PrecisionError => write!(fmt, "Precision cannot be maintained"),
21            FloatError::ProbabilityRangeError => write!(fmt, "Not a probability"),
22            FloatError::NaturalRangeError => write!(fmt, "Not a natural number"),
23            FloatError::RealRangeError => write!(fmt, "Not real a number"),
24            FloatError::BadNumber => write!(fmt, "Number does not meet constraint"),
25        }
26    }
27}
28
29impl Error for FloatError {}