Skip to main content

chronix_analytics/anomaly/
error.rs

1//! Error types for anomaly detection.
2
3use thiserror::Error;
4
5/// Errors produced by anomaly detectors.
6#[derive(Debug, Error)]
7pub enum AnomalyError {
8    /// Insufficient data for the requested operation.
9    #[error("insufficient data: need at least {min}, got {got}")]
10    InsufficientData {
11        /// Minimum number of points required.
12        min: usize,
13        /// Actual number of points provided.
14        got: usize,
15    },
16
17    /// Invalid input data or parameter.
18    #[error("invalid input: {0}")]
19    InvalidInput(String),
20
21    /// Threshold value is out of range.
22    #[error("invalid threshold: {0}")]
23    InvalidThreshold(String),
24
25    /// Detector has not been fitted yet.
26    #[error("detector not fitted — call fit() before detect()")]
27    NotFitted,
28
29    /// Underlying forecast model error.
30    #[error("forecast error: {0}")]
31    Forecast(String),
32}