1use std::path::PathBuf;
2
3#[derive(Debug, thiserror::Error)]
5pub enum Error {
6 #[error("could not read {path}: {source}")]
7 Io {
8 path: PathBuf,
9 #[source]
10 source: std::io::Error,
11 },
12 #[error("invalid JSON in {path}: {source}")]
13 Json {
14 path: PathBuf,
15 #[source]
16 source: serde_json::Error,
17 },
18 #[error("invalid microWakeWord configuration: {0}")]
19 InvalidConfig(String),
20 #[error("incompatible microWakeWord model: {0}")]
21 IncompatibleModel(String),
22 #[error("TensorFlow Lite error: {0}")]
23 Tflite(#[from] tflite_c::Error),
24 #[error("unsupported platform: {0}")]
25 UnsupportedPlatform(String),
26 #[error("audio error: {0}")]
27 Audio(String),
28 #[error("the audio stream ended")]
29 AudioStreamEnded,
30}
31
32pub type Result<T> = std::result::Result<T, Error>;