#[derive(Debug, Clone)]
pub enum TunerError {
InvalidFeature(String),
InsufficientData(usize),
Serialization(String),
ModelNotFound,
PredictionFailed(String),
TrainingFailed(String),
Io(String),
InvalidFormat(String),
}
impl std::fmt::Display for TunerError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
TunerError::InvalidFeature(msg) => write!(f, "Invalid feature: {}", msg),
TunerError::InsufficientData(n) => {
write!(f, "Insufficient training data: {} samples (need >= 10)", n)
}
TunerError::Serialization(msg) => write!(f, "Serialization error: {}", msg),
TunerError::ModelNotFound => write!(f, "Tuner model not found"),
TunerError::PredictionFailed(msg) => write!(f, "Prediction failed: {}", msg),
TunerError::TrainingFailed(msg) => write!(f, "Training failed: {}", msg),
TunerError::Io(msg) => write!(f, "I/O error: {}", msg),
TunerError::InvalidFormat(msg) => write!(f, "Invalid format: {}", msg),
}
}
}
impl std::error::Error for TunerError {}