use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("audio write error: {0}")]
Hound(#[from] hound::Error),
#[error("encode error: {0}")]
Encode(String),
#[error("decode error: {0}")]
Decode(String),
#[error("no audio track found")]
NoAudioTrack,
#[error("unsupported format")]
UnsupportedFormat,
#[error("signal too short")]
TooShort,
#[error("FFT error: {0}")]
Fft(String),
#[error("noise print FFT size mismatch")]
NoisePrintMismatch,
}
impl From<realfft::FftError> for Error {
fn from(e: realfft::FftError) -> Self {
Error::Fft(format!("{e:?}"))
}
}