use failure::Fail;
pub use failure::Error;
use serde::Deserialize;
#[derive(Debug, Fail, Deserialize)]
pub enum ApiError {
#[fail(display = "Invalid api_key")]
InvalidApiKey(),
#[fail(display = "Error: {}", _0)]
GenericError(String),
}
impl From<reqwest::Error> for ApiError {
fn from(req_err: reqwest::Error) -> ApiError {
ApiError::GenericError(format!("{}", req_err))
}
}
impl From<std::io::Error> for ApiError {
fn from(io_err: std::io::Error) -> ApiError {
ApiError::GenericError(format!("{}", io_err))
}
}
impl From<walkdir::Error> for ApiError {
fn from(io_err: walkdir::Error) -> ApiError {
ApiError::GenericError(format!("{}", io_err))
}
}
impl From<serde_json::Error> for ApiError {
fn from(json_err: serde_json::Error) -> ApiError {
ApiError::GenericError(format!("{}", json_err))
}
}