use thiserror::Error;
#[derive(Debug, Error)]
pub enum MirError {
#[error("Invalid audio input: {0}")]
InvalidInput(String),
#[error("Insufficient data: {0}")]
InsufficientData(String),
#[error("Analysis failed: {0}")]
AnalysisFailed(String),
#[error("FFT error: {0}")]
FftError(String),
#[error("Invalid configuration: {0}")]
InvalidConfig(String),
#[error("Feature extraction failed: {0}")]
FeatureExtractionFailed(String),
#[error("Model error: {0}")]
ModelError(String),
#[cfg(feature = "onnx")]
#[error("ML error: {0}")]
Ml(#[from] oximedia_ml::MlError),
}
pub type MirResult<T> = Result<T, MirError>;