cloud_hypervisor_client/apis/
mod.rs

1use std::fmt;
2use std::fmt::Debug;
3
4use hyper;
5use hyper::http;
6use hyper_util::client::legacy::connect::Connect;
7use serde_json;
8
9#[derive(thiserror::Error, Debug)]
10pub enum Error {
11    #[error("ApiError: {0:?}")]
12    Api(ApiError),
13    #[error("InvalidHeaderValue: {0}")]
14    Header(http::header::InvalidHeaderValue),
15    #[error("Http: {0}")]
16    Http(http::Error),
17    #[error("Hyper: {0}")]
18    Hyper(hyper::Error),
19    #[error("HyperClient: {0}")]
20    HyperClient(hyper_util::client::legacy::Error),
21    #[error("serde_json::Error: {0}")]
22    Serde(serde_json::Error),
23    #[error("InvalidUri: {0}")]
24    UriError(http::uri::InvalidUri),
25}
26
27pub struct ApiError {
28    pub code: hyper::StatusCode,
29    pub body: String,
30}
31
32impl Debug for ApiError {
33    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
34        f.debug_struct("ApiError")
35            .field("code", &self.code)
36            .field("body", &self.body)
37            .finish()
38    }
39}
40
41impl From<(hyper::StatusCode, String)> for Error {
42    fn from(e: (hyper::StatusCode, String)) -> Self {
43        Error::Api(ApiError {
44            code: e.0,
45            body: e.1,
46        })
47    }
48}
49
50impl From<http::Error> for Error {
51    fn from(e: http::Error) -> Self {
52        Error::Http(e)
53    }
54}
55
56impl From<hyper_util::client::legacy::Error> for Error {
57    fn from(e: hyper_util::client::legacy::Error) -> Self {
58        Error::HyperClient(e)
59    }
60}
61
62impl From<hyper::Error> for Error {
63    fn from(e: hyper::Error) -> Self {
64        Error::Hyper(e)
65    }
66}
67
68impl From<serde_json::Error> for Error {
69    fn from(e: serde_json::Error) -> Self {
70        Error::Serde(e)
71    }
72}
73
74mod request;
75
76mod default_api;
77pub use self::default_api::{DefaultApi, DefaultApiClient};
78
79pub mod client;
80pub mod configuration;