#[derive(Debug, thiserror::Error)] pub enum ServiceError { #[error("no response generated; the proxy is misconfigured")] NoResponse, #[error("request taken; the proxy is misconfigured")] RequestTaken, #[error("limit reached. try again")] Limit(#[from] tokio::sync::TryAcquireError), #[error("hyper error")] Hyper(hyper::Error), #[error("no host")] NoHost, #[error("unknown host")] UnknownHost, #[error("unknown path")] UnknownPath, #[error("can't connect to the backend")] CantConnect, #[error("not found")] NotFound, #[error("io error: {0}")] Io(#[from] std::io::Error), #[error("bad range")] BadRange, #[error("bad utf8")] BadUtf8(#[from] std::str::Utf8Error), #[error("bad utf8")] BadUtf82(#[from] std::string::FromUtf8Error), #[error("bad path")] BadPath, #[error("bad auth")] BadAuth, #[error("bad base64: {0}")] BadBase64(#[from] base64::DecodeError), #[error("connection upgrade failed")] UpgradeFailed, #[error("{0}")] Custom(String), #[error("parse int error: {0}")] ParseIntError(#[from] std::num::ParseIntError), #[error("invalid header")] InvalidHeader, #[error("impossible error")] Other, }