1use thiserror::Error;
2
3#[derive(Debug, Clone, PartialEq, Error)]
4pub enum RecognizeError {
5 #[error("invalid embedding shape: expected rank-1, got {got:?}")]
6 InvalidEmbeddingShape { got: Vec<usize> },
7 #[error("embedding must contain at least one element")]
8 EmptyEmbedding,
9 #[error("embedding contains non-finite value at index {index}")]
10 NonFiniteEmbeddingValue { index: usize },
11 #[error("invalid recognition threshold: {value}; expected finite threshold in [-1, 1]")]
12 InvalidThreshold { value: f32 },
13 #[error("identity already enrolled: {id}")]
14 DuplicateIdentity { id: String },
15 #[error("embedding dim mismatch: expected {expected}, got {got}")]
16 EmbeddingDimMismatch { expected: usize, got: usize },
17 #[error("recognizer serialization error: {message}")]
18 Serialization { message: String },
19 #[error("recognizer IO error: {message}")]
20 Io { message: String },
21}