#[derive(Debug, Clone)]
pub enum TinyModelError {
EmptyModel,
InvalidCoefficient { index: usize, value: f32 },
InvalidVariance {
class: usize,
feature: usize,
value: f32,
},
ShapeMismatch { message: String },
InvalidK { k: u32, n_samples: usize },
FeatureMismatch { expected: usize, got: usize },
}
impl std::fmt::Display for TinyModelError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::EmptyModel => write!(f, "Model has no parameters"),
Self::InvalidCoefficient { index, value } => {
write!(f, "Invalid coefficient at index {index}: {value}")
}
Self::InvalidVariance {
class,
feature,
value,
} => {
write!(
f,
"Invalid variance for class {class}, feature {feature}: {value}"
)
}
Self::ShapeMismatch { message } => write!(f, "Shape mismatch: {message}"),
Self::InvalidK { k, n_samples } => {
write!(f, "Invalid k={k} for {n_samples} samples")
}
Self::FeatureMismatch { expected, got } => {
write!(f, "Expected {expected} features, got {got}")
}
}
}
}
impl std::error::Error for TinyModelError {}