1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
use hyper::{self, StatusCode};
use serde_json::Error as SerdeError;
use std::string::FromUtf8Error;
use thiserror::Error as ThisError;
use futures_util::io::Error as IoError;
pub type Result<T> = std::result::Result<T, Error>;
#[cfg(feature = "tls")]
use openssl::error::ErrorStack;
#[derive(Debug, ThisError)]
pub enum Error {
#[error(transparent)]
SerdeJsonError(#[from] SerdeError),
#[error(transparent)]
Hyper(#[from] hyper::Error),
#[error(transparent)]
Http(#[from] hyper::http::Error),
#[error(transparent)]
#[allow(clippy::upper_case_acronyms)]
IO(#[from] IoError),
#[error(transparent)]
Encoding(#[from] FromUtf8Error),
#[error("The response is invalid - {0}")]
InvalidResponse(String),
#[error("error {code} - {message}")]
Fault { code: StatusCode, message: String },
#[error("The HTTP connection was not upgraded by the docker host")]
ConnectionNotUpgraded,
#[cfg(feature = "tls")]
#[error(transparent)]
ErrorStack(#[from] ErrorStack),
#[error("Provided scheme `{0}` is not supported")]
UnsupportedScheme(String),
#[error("Provided URI is missing authority part after scheme")]
MissingAuthority,
#[error("Failed to parse url - {0}")]
InvalidUrl(url::ParseError),
#[error("Failed to parse uri - {0}")]
InvalidUri(http::uri::InvalidUri),
#[error("Invalid port - {0}")]
InvalidPort(String),
#[error("Invalid protocol - {0}")]
InvalidProtocol(String),
}