#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("Network error")]
Network(#[from] reqwest::Error),
#[error("Malformed JSON")]
Json(#[from] JsonError),
#[error("Malformed URL")]
Url(#[from] url::ParseError),
#[error("Invalid query parameter")]
QueryParam(#[from] crate::QueryParamError),
#[error("Invalid header name")]
BadHeaderName(#[source] http::Error),
#[error("Invalid value for header `{0}`")]
BadHeaderValue(http::HeaderName, #[source] http::Error),
}
#[derive(Debug, thiserror::Error)]
pub enum JsonError {
#[error(transparent)]
Json(#[from] serde_json::Error),
#[error(transparent)]
JsonWithPath(#[from] serde_path_to_error::Error<serde_json::Error>),
}