use tokio::sync::TryAcquireError; #[derive(Debug, thiserror::Error)] pub enum ServiceError { #[error("limit reached. try again")] Limit(#[from] TryAcquireError), #[error("hyper error")] Hyper(hyper::Error), #[error("unknown host")] NoHost, #[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("ohh. i didn't expect that this error can be generated.")] Other, }