use std::error::Error as StdError;
use crate::case::Checkpoint;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("checkpoint error: {0:?}")]
Checkpoint(Vec<Checkpoint>),
#[error("hyper error: {0}")]
Hyper(#[from] crate::hyper::Error),
#[error("http error: {0}")]
Http(#[from] crate::hyper::http::Error),
#[cfg(feature = "hyper_1")]
#[error("hyper_util client error: {0}")]
HyperLegacy(#[from] hyper_util::client::legacy::Error),
#[error("httparse error: {0}")]
Httparse(#[from] httparse::Error),
#[cfg(feature = "json")]
#[error("JSON serde error: {0}")]
Json(#[from] serde_json::Error),
#[error("no cases matched the request: {0:?}")]
NotFound(crate::hyper::Request<String>),
#[error("transparent")]
Runtime(#[from] BoxError),
}
pub type BoxError = Box<dyn StdError + Send + Sync>;