use thiserror::Error;
#[derive(Debug, Error)]
pub enum RagDriftError {
#[error("dimension mismatch: expected {expected}, got {actual} ({context})")]
DimensionMismatch {
expected: usize,
actual: usize,
context: &'static str,
},
#[error("insufficient samples: need at least {required}, got {got} ({context})")]
InsufficientSamples {
required: usize,
got: usize,
context: &'static str,
},
#[error("numerical instability in {0} (NaN or infinity)")]
NumericalInstability(&'static str),
#[error("invalid configuration: {0}")]
InvalidConfig(String),
#[error("io error: {0}")]
Io(#[from] std::io::Error),
#[error("serialization error: {0}")]
Serde(#[from] serde_json::Error),
}