From 0dce82b171ab328f32cc86db9f0679ec49359d9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20M=C3=BCller?= Date: Sun, 11 Feb 2024 16:34:44 -0800 Subject: [PATCH] Piss off --- Cargo.toml | 6 ++++-- src/client.rs | 26 +++++++++++++------------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index dffb2ed..f09bd6a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,9 +32,11 @@ async-trait = "0.1.51" chrono = {version = "0.4.19", features = ["serde"]} futures = {version = "0.3", default-features = false} http = {version = "0.2", default-features = false} +http-body-util = {version = "0.1", default-features = false} http-endpoint = "0.5" -hyper = {version = "0.14", features = ["client", "http1", "stream"]} -hyper-tls = {version = "0.5", default-features = false} +hyper = {version = "1.1", features = ["client", "http1"]} +hyper-util = {version = "0.1.3", features = ["client-legacy"]} +hyper-tls = {version = "0.6", default-features = false} num-decimal = {version = "0.2.4", default-features = false, features = ["num-v04", "serde"]} serde = {version = "1.0.103", features = ["derive"]} serde_json = {version = "1.0", default-features = false, features = ["std"]} diff --git a/src/client.rs b/src/client.rs index d81254b..6509355 100644 --- a/src/client.rs +++ b/src/client.rs @@ -13,13 +13,13 @@ use http::HeaderMap; use http::HeaderValue; use http::Request; use http::Response; +use http_body_util::combinators::BoxBody; use http_endpoint::Endpoint; +use hyper::body::Body as _; use hyper::body::Bytes; -use hyper::body::HttpBody as _; use hyper::client::Builder as HttpClientBuilder; use hyper::client::HttpConnector; -use hyper::Body; use hyper::Client as HttpClient; use hyper::Error as HyperError; use hyper_tls::HttpsConnector; @@ -69,7 +69,7 @@ impl<'h> Debug for DebugHeaders<'h> { /// A type providing a debug representation of an HTTP request, with /// sensitive data being masked out. struct DebugRequest<'r> { - request: &'r Request, + request: &'r Request, } impl<'r> Debug for DebugRequest<'r> { @@ -92,7 +92,7 @@ impl<'r> Debug for DebugRequest<'r> { /// Emit a debug representation of an HTTP request. -fn debug_request(request: &Request) -> DebugValue> { +fn debug_request(request: &Request) -> DebugValue> { debug(DebugRequest { request }) } @@ -152,7 +152,7 @@ impl Default for Builder { #[derive(Debug)] pub struct Client { api_info: ApiInfo, - client: HttpClient, Body>, + client: HttpClient, BoxBody>, } impl Client { @@ -171,7 +171,7 @@ impl Client { /// Add "gzip" as an accepted encoding to the request. #[cfg(feature = "gzip")] - fn maybe_add_gzip_header(request: &mut Request) { + fn maybe_add_gzip_header(request: &mut Request) { use http::header::ACCEPT_ENCODING; let _ = request @@ -181,10 +181,10 @@ impl Client { /// An implementation stub not actually doing anything. #[cfg(not(feature = "gzip"))] - fn maybe_add_gzip_header(_request: &mut Request) {} + fn maybe_add_gzip_header(_request: &mut Request) {} /// Create a `Request` to the endpoint. - fn request(&self, input: &R::Input) -> Result, R::Error> + fn request(&self, input: &R::Input) -> Result, R::Error> where R: Endpoint, { @@ -201,7 +201,7 @@ impl Client { // Add required authentication information. .header(HDR_KEY_ID, self.api_info.key_id.as_str()) .header(HDR_SECRET, self.api_info.secret.as_str()) - .body(Body::from( + .body(BoxBody::from( R::body(input)?.unwrap_or(Cow::Borrowed(&[0; 0])), ))?; @@ -209,7 +209,7 @@ impl Client { Ok(request) } - async fn retrieve_raw_body(response: Body) -> Result { + async fn retrieve_raw_body(response: BoxBody) -> Result { // We unconditionally wait for the full body to be received // before even evaluating the header. That is mostly done for // simplicity and it shouldn't really matter anyway because most @@ -225,7 +225,7 @@ impl Client { /// Retrieve the HTTP body, possible uncompressing it if it was gzip /// encoded. #[cfg(feature = "gzip")] - async fn retrieve_body(response: Response) -> Result> { + async fn retrieve_body(response: Response) -> Result> { use async_compression::futures::bufread::GzipDecoder; use futures::AsyncReadExt as _; use http::header::CONTENT_ENCODING; @@ -248,7 +248,7 @@ impl Client { /// Retrieve the HTTP body. #[cfg(not(feature = "gzip"))] - async fn retrieve_body(response: Response) -> Result> { + async fn retrieve_body(response: Response) -> Result> { let bytes = Self::retrieve_raw_body(response.into_body()).await?; Ok(bytes) } @@ -276,7 +276,7 @@ impl Client { /// Issue a request. #[allow(clippy::cognitive_complexity)] - async fn issue_(&self, request: Request) -> Result> + async fn issue_(&self, request: Request) -> Result> where R: Endpoint, {