1use serde_json::Value;
2use snafu::Snafu;
3use url::Url;
4
5#[derive(Debug, Snafu)]
6#[snafu(visibility = "pub")]
7pub enum Error {
8 #[snafu(context(false))]
9 ParseUrlError {
10 source: url::ParseError,
11 },
12 InvalidUrl {
13 url: Url,
14 },
15 #[snafu(display("InvalidResponse: {}", resp))]
16 InvalidResponse {
17 resp: Value,
18 },
19 #[snafu(display("Fails to fetch `{}`: {}", url, source))]
20 NetworkError {
21 url: Url,
22 source: reqwest::Error,
23 },
24 #[snafu(context(false))]
25 ParseJsonError {
26 source: reqwest::Error,
27 },
28}