1use reqwest::StatusCode;
2
3pub type Result<T> = std::result::Result<T, Error>;
4
5#[derive(thiserror::Error, Debug)]
6pub enum Error {
7 #[error("io error")]
8 IO(#[from] std::io::Error),
9 #[error("transport error")]
10 Transport(#[from] reqwest::Error),
11 #[error("bad url")]
12 BadUrl(#[from] url::ParseError),
13 #[error("missing header")]
14 MissingHeader(Option<reqwest::header::HeaderName>),
15 #[error("HTTP status {status_code}, code: {error_code}, message: {error_message}")]
16 Endpoint {
17 status_code: StatusCode,
18 error_code: String,
19 error_message: String,
20 },
21 #[error("protobuf error")]
22 Protobuf(#[from] quick_protobuf::Error),
23}