1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum RabitqError {
5 #[error("dimension mismatch: expected {expected}, got {actual}")]
6 DimensionMismatch { expected: usize, actual: usize },
7
8 #[error("index is empty")]
9 EmptyIndex,
10
11 #[error("k ({k}) exceeds number of indexed vectors ({n})")]
12 KTooLarge { k: usize, n: usize },
13
14 #[error("invalid dimension {0}: must be > 0")]
15 InvalidDimension(usize),
16
17 #[error("invalid parameter: {0}")]
18 InvalidParameter(String),
19}
20
21pub type Result<T> = std::result::Result<T, RabitqError>;