use crate::poly_translator::async_translator::Language;
#[derive(Debug, thiserror::Error)]
#[allow(dead_code)]
pub enum TranslatorError {
#[error("Failed to fetch")]
Reqwest(#[from] reqwest::Error),
#[error("Api returned invalid response")]
ApiError(ApiError),
#[error("Couldnt convert language")]
UnknownLanguage(Language),
#[error("failed to convert string to language")]
CouldNotMapLanguage(Option<String>),
#[error("api did not return a response")]
NoResponse,
#[error("Request was too long")]
RequestToLong(u32, u32),
#[error("Request failed with status code")]
RequestFailed(u16),
#[error("Translator required a input language")]
NoLanguage,
}
#[derive(Debug)]
#[allow(dead_code)]
pub enum ApiError {
Baidu { code: String, message: String },
}
impl std::fmt::Display for ApiError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
ApiError::Baidu { code, message } => {
write!(f, "Baidu API Error [{}]: {}", code, message)
}
}
}
}