use thiserror::Error;
#[derive(Debug, Error)]
pub enum AudioError {
#[error("Invalid audio data: {0}")]
InvalidData(String),
#[error("Unsupported format: {0}")]
UnsupportedFormat(String),
#[error("Need more data")]
NeedMoreData,
#[error("Buffer too small: need {needed}, have {have}")]
BufferTooSmall {
needed: usize,
have: usize,
},
#[error("Invalid parameter: {0}")]
InvalidParameter(String),
#[error("Internal error: {0}")]
Internal(String),
#[error("End of stream")]
Eof,
#[error("I/O error: {0}")]
Io(String),
#[error("Core error: {0}")]
Core(#[from] oximedia_core::OxiError),
}
pub type AudioResult<T> = Result<T, AudioError>;