use std::fmt;
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("HTTP error: {0}")]
Http(#[from] reqwest::Error),
#[error("invalid response: {0}")]
InvalidResponse(String),
#[error("API status: {0}")]
Api(ApiStatus),
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct ApiStatus(pub String);
impl ApiStatus {
pub fn as_str(&self) -> &str {
&self.0
}
}
impl fmt::Display for ApiStatus {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.write_str(&self.0)
}
}
impl From<String> for ApiStatus {
fn from(s: String) -> Self {
ApiStatus(s)
}
}