use std::fmt;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum YieldCurveError {
InsufficientData {
method: &'static str,
need: usize,
got: usize,
},
InvalidPoint(String),
FitFailed(String),
InvalidTimeRange(String),
}
impl fmt::Display for YieldCurveError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::InsufficientData { method, need, got } => {
write!(f, "{method} requires at least {need} points, got {got}")
}
Self::InvalidPoint(msg) => write!(f, "invalid point: {msg}"),
Self::FitFailed(msg) => write!(f, "fit failed to converge: {msg}"),
Self::InvalidTimeRange(msg) => write!(f, "invalid time range: {msg}"),
}
}
}
impl std::error::Error for YieldCurveError {}