1#[derive(Debug, thiserror::Error)]
3pub enum VadError {
4 #[error("unsupported sample rate: {0} Hz")]
6 InvalidSampleRate(u32),
7
8 #[error("invalid frame size: got {got} samples, expected {expected}")]
10 InvalidFrameSize {
11 got: usize,
13 expected: usize,
15 },
16
17 #[error("backend error: {0}")]
19 BackendError(String),
20}
21
22#[cfg(test)]
23mod tests {
24 use super::*;
25
26 #[test]
27 fn error_display_messages() {
28 let err = VadError::InvalidSampleRate(44100);
29 assert_eq!(err.to_string(), "unsupported sample rate: 44100 Hz");
30
31 let err = VadError::InvalidFrameSize {
32 got: 100,
33 expected: 160,
34 };
35 assert_eq!(
36 err.to_string(),
37 "invalid frame size: got 100 samples, expected 160"
38 );
39
40 let err = VadError::BackendError("something went wrong".into());
41 assert_eq!(err.to_string(), "backend error: something went wrong");
42 }
43}