use alloc::string::String;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, thiserror::Error)]
#[non_exhaustive]
pub enum PraniError {
#[error("invalid tract parameter: {0}")]
InvalidTract(String),
#[error("invalid vocalization: {0}")]
InvalidVocalization(String),
#[error("invalid species: {0}")]
InvalidSpecies(String),
#[error("synthesis failed: {0}")]
SynthesisFailed(String),
#[error("svara error: {0}")]
Svara(String),
}
impl From<svara::error::SvaraError> for PraniError {
fn from(e: svara::error::SvaraError) -> Self {
Self::Svara(alloc::format!("{e}"))
}
}
pub type Result<T> = core::result::Result<T, PraniError>;