#[derive(Debug, thiserror::Error)]
pub enum VadError {
#[error("unsupported sample rate: {0} Hz")]
InvalidSampleRate(u32),
#[error("invalid frame size: got {got} samples, expected {expected}")]
InvalidFrameSize {
got: usize,
expected: usize,
},
#[error("backend error: {0}")]
BackendError(String),
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn error_display_messages() {
let err = VadError::InvalidSampleRate(44100);
assert_eq!(err.to_string(), "unsupported sample rate: 44100 Hz");
let err = VadError::InvalidFrameSize {
got: 100,
expected: 160,
};
assert_eq!(
err.to_string(),
"invalid frame size: got 100 samples, expected 160"
);
let err = VadError::BackendError("something went wrong".into());
assert_eq!(err.to_string(), "backend error: something went wrong");
}
}