Skip to main content

wavekat_tts/
error.rs

1/// Errors produced by TTS backends.
2#[derive(Debug, thiserror::Error)]
3pub enum TtsError {
4    /// The requested voice was not found.
5    #[error("voice not found: {0}")]
6    VoiceNotFound(String),
7
8    /// The requested language is not supported by this backend.
9    #[error("unsupported language: {0}")]
10    UnsupportedLanguage(String),
11
12    /// Model loading or initialization failed.
13    #[error("model error: {0}")]
14    Model(String),
15
16    /// Inference / synthesis failed.
17    #[error("synthesis error: {0}")]
18    Synthesis(String),
19
20    /// Network or API error (for remote backends).
21    #[error("api error: {0}")]
22    Api(String),
23
24    /// I/O error.
25    #[error("io error: {0}")]
26    Io(#[from] std::io::Error),
27}
28
29impl From<wavekat_core::CoreError> for TtsError {
30    fn from(err: wavekat_core::CoreError) -> Self {
31        match err {
32            wavekat_core::CoreError::Io(io) => Self::Io(io),
33            wavekat_core::CoreError::Audio(msg) => Self::Synthesis(msg),
34        }
35    }
36}