38 lines
1.1 KiB
Rust
38 lines
1.1 KiB
Rust
use serde::Serialize;
|
|
use thiserror::Error;
|
|
|
|
pub type AppResult<T> = Result<T, AppError>;
|
|
|
|
#[derive(Debug, Error, Serialize, Clone, PartialEq, Eq)]
|
|
#[serde(tag = "code", content = "message")]
|
|
pub enum AppError {
|
|
#[error("modelo offline não instalado: {0}")]
|
|
ModelNotInstalled(String),
|
|
#[error("sidecar CrispASR não configurado")]
|
|
SidecarNotConfigured,
|
|
#[error("gravação já está em andamento")]
|
|
RecordingAlreadyActive,
|
|
#[error("nenhuma gravação ativa")]
|
|
NoActiveRecording,
|
|
#[error("operação ainda não suportada neste ambiente: {0}")]
|
|
Unsupported(String),
|
|
#[error("erro de configuração: {0}")]
|
|
Configuration(String),
|
|
#[error("erro de E/S: {0}")]
|
|
Io(String),
|
|
#[error("erro de rede: {0}")]
|
|
Network(String),
|
|
#[error("modelo offline inválido: {0}")]
|
|
InvalidModel(String),
|
|
#[error("erro de áudio: {0}")]
|
|
Audio(String),
|
|
#[error("transcrição falhou: {0}")]
|
|
Transcription(String),
|
|
}
|
|
|
|
impl From<AppError> for String {
|
|
fn from(value: AppError) -> Self {
|
|
value.to_string()
|
|
}
|
|
}
|