Skip to main content

yscv_recognize/
error.rs

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}