1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum MirError {
8 #[error("Invalid audio input: {0}")]
10 InvalidInput(String),
11
12 #[error("Insufficient data: {0}")]
14 InsufficientData(String),
15
16 #[error("Analysis failed: {0}")]
18 AnalysisFailed(String),
19
20 #[error("FFT error: {0}")]
22 FftError(String),
23
24 #[error("Invalid configuration: {0}")]
26 InvalidConfig(String),
27
28 #[error("Feature extraction failed: {0}")]
30 FeatureExtractionFailed(String),
31
32 #[error("Model error: {0}")]
34 ModelError(String),
35
36 #[cfg(feature = "onnx")]
38 #[error("ML error: {0}")]
39 Ml(#[from] oximedia_ml::MlError),
40}
41
42pub type MirResult<T> = Result<T, MirError>;