use serde::Deserialize;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum WakapiError {
#[error("Cannot find home directory")]
HomeDirNotFound,
#[error("Cannot read config file")]
ConfigFileReadError(#[from] std::io::Error),
#[error("Cannot parse config file")]
ConfigFileParseError(#[from] toml::de::Error),
#[error("Cannot prepare url params")]
UrlParamsError(#[from] serde_url_params::Error),
#[error("Request error")]
RequestError(#[from] reqwest::Error),
#[error("Error response")]
ResponseError(ErrorMessage),
#[error("Unknown error")]
UnknownError,
}
#[derive(Deserialize, Debug)]
pub struct ErrorMessage {
pub error: String,
}
impl ErrorMessage {
pub fn new(error: &str) -> ErrorMessage {
ErrorMessage {
error: error.to_string(),
}
}
pub fn unknown() -> ErrorMessage {
ErrorMessage {
error: "Unknown error".to_string(),
}
}
}