charon_audio/
error.rs

1//! Error types for Charon
2
3use thiserror::Error;
4
5/// Result type alias using CharonError
6pub type Result<T> = std::result::Result<T, CharonError>;
7
8/// Main error type for Charon operations
9#[derive(Error, Debug)]
10pub enum CharonError {
11    #[error("Audio error: {0}")]
12    Audio(String),
13
14    #[error("IO error: {0}")]
15    Io(#[from] std::io::Error),
16
17    #[error("Model error: {0}")]
18    Model(String),
19
20    #[cfg(feature = "ort-backend")]
21    #[error("ONNX Runtime error: {0}")]
22    Ort(#[from] ort::Error),
23
24    #[cfg(feature = "candle-backend")]
25    #[error("Candle error: {0}")]
26    Candle(#[from] candle_core::Error),
27
28    #[error("Resampling error: {0}")]
29    Resampling(String),
30
31    #[error("Invalid audio format: {0}")]
32    InvalidFormat(String),
33
34    #[error("Invalid configuration: {0}")]
35    InvalidConfig(String),
36
37    #[error("Processing error: {0}")]
38    Processing(String),
39
40    #[error("Not supported: {0}")]
41    NotSupported(String),
42
43    #[error("Unknown error: {0}")]
44    Unknown(String),
45}
46
47impl From<String> for CharonError {
48    fn from(s: String) -> Self {
49        CharonError::Unknown(s)
50    }
51}
52
53impl From<&str> for CharonError {
54    fn from(s: &str) -> Self {
55        CharonError::Unknown(s.to_string())
56    }
57}