use derive_more::derive::From;
use crate::net::Request;
use super::system::MockError;
#[derive(Debug, From, derive_more::Display)]
pub enum Error {
Reqwest(reqwest::Error),
Request(String),
Url(url::ParseError),
#[display("Unexpected request: {0}", 0.to_string())]
UnexpectedMockRequest(Request),
RwLockLocked,
Http(http::Error),
NetIsNotAMock,
InvalidMock(MockError),
#[display("response error: {}", response.status())]
ResponseError {
response: reqwest::Response,
},
}
impl std::error::Error for Error {}
impl Clone for Error {
fn clone(&self) -> Self {
match self {
Self::Reqwest(req) => Self::Request(req.to_string()),
err => err.clone(),
}
}
}
pub type Result<T> = core::result::Result<T, Error>;