pub use anyhow::{anyhow, bail, Context, Error};
use std::process;
#[cfg(feature = "hyper")]
#[derive(Debug)]
pub struct BadHttpStatusError(pub hyper::StatusCode);
#[derive(Debug)]
pub struct HttpClientError(pub String);
#[derive(Debug)]
pub struct ProcessError(pub process::Output);
#[cfg(feature = "hyper")]
impl std::error::Error for BadHttpStatusError {}
impl std::error::Error for HttpClientError {}
impl std::error::Error for ProcessError {}
#[cfg(feature = "hyper")]
impl std::fmt::Display for BadHttpStatusError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "didn't get a successful HTTP status, got `{}`", self.0)
}
}
impl std::fmt::Display for HttpClientError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "didn't get a successful HTTP status, got `{}`", self.0)
}
}
impl std::fmt::Display for ProcessError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", String::from_utf8_lossy(&self.0.stderr))
}
}
pub type Result<T> = anyhow::Result<T>;