41 lines
1.1 KiB
Rust
41 lines
1.1 KiB
Rust
use thiserror::Error;
|
|
|
|
#[derive(Debug, Error)]
|
|
pub enum Error {
|
|
#[error("Insufficient data: at least {required} data points required, but got {provided}")]
|
|
InsufficientData { required: usize, provided: usize },
|
|
|
|
#[error("Invalid data: {0}")]
|
|
InvalidData(String),
|
|
|
|
#[error("Fitting error: {0}")]
|
|
FittingError(String),
|
|
|
|
#[error("Fit quality check error: {0}")]
|
|
FitQualityError(String),
|
|
|
|
#[error("Invalid parameter: {0}")]
|
|
InvalidParameter(String),
|
|
|
|
#[error("Math error: {0}")]
|
|
MathError(String),
|
|
|
|
#[error("Invalid percentile: {0}. Must be between 0 and 1.")]
|
|
InvalidPercentile(f64),
|
|
|
|
#[error("Invalid confidence level: {0}. Must be between 0 and 1.")]
|
|
InvalidConfidenceLevel(f64),
|
|
|
|
#[error("Invalid shape: {0}. Must be between 0 and 1.")]
|
|
InvalidShape(f64),
|
|
|
|
#[error("Invalid parameters: min ({min}) must be less than max ({max}).")]
|
|
InvalidRange { min: f64, max: f64 },
|
|
|
|
#[error("Likely value ({likely}) must be between min ({min}) and max ({max}).")]
|
|
InvalidMode { min: f64, likely: f64, max: f64 },
|
|
|
|
#[error("statrs::StatsError: {0}.")]
|
|
StatsError(#[from] statrs::StatsError),
|
|
}
|