use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[error("empty input")]
EmptyInput,
#[error("invalid parameter {name}: {message}")]
InvalidParameter {
name: &'static str,
message: &'static str,
},
#[error("invalid cluster count: requested {requested}, but dataset has {n_items} items")]
InvalidClusterCount {
requested: usize,
n_items: usize,
},
#[error("dimension mismatch: expected {expected}, found {found}")]
DimensionMismatch {
expected: usize,
found: usize,
},
#[error("constraint violation: {0}")]
ConstraintViolation(String),
#[error("{0}")]
Other(String),
}
pub type Result<T> = std::result::Result<T, Error>;