Struct aws_smithy_client::hyper_ext::Builder
source · [−]pub struct Builder { /* private fields */ }
Expand description
Builder for hyper_ext::Adapter
Unlike a Smithy client, the [tower::Service
] inside a hyper_ext::Adapter
is actually a service that
accepts a Uri
and returns a TCP stream. Two default implementations of this are provided, one
that encrypts the stream with rustls
, the other that encrypts the stream with native-tls
.
Examples
Construct a HyperAdapter with the default HTTP implementation (rustls). This can be useful when you want to share a Hyper connector between multiple Smithy clients.
use tower::layer::util::Identity;
use aws_smithy_client::{conns, hyper_ext};
use aws_smithy_client::erase::DynConnector;
let hyper_connector = hyper_ext::Adapter::builder().build(conns::https());
// this client can then be used when constructing a Smithy Client
// Replace `Identity` with your middleware implementation:
let client = aws_smithy_client::Client::<DynConnector, Identity>::new(DynConnector::new(hyper_connector));
Implementations
sourceimpl Builder
impl Builder
sourcepub fn build<C>(self, connector: C) -> Adapter<C>where
C: Clone + Send + Sync + 'static,
C: Service<Uri>,
C::Response: Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
C::Future: Unpin + Send + 'static,
C::Error: Into<BoxError>,
pub fn build<C>(self, connector: C) -> Adapter<C>where
C: Clone + Send + Sync + 'static,
C: Service<Uri>,
C::Response: Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
C::Future: Unpin + Send + 'static,
C::Error: Into<BoxError>,
Create a HyperAdapter from this builder and a given connector
sourcepub fn sleep_impl(self, sleep_impl: impl AsyncSleep + 'static) -> Self
pub fn sleep_impl(self, sleep_impl: impl AsyncSleep + 'static) -> Self
Set the async sleep implementation used for timeouts
Calling this is only necessary for testing or to use something other than
aws_smithy_async::rt::sleep::default_async_sleep
.
sourcepub fn timeout(self, http_timeout_config: &Http) -> Self
pub fn timeout(self, http_timeout_config: &Http) -> Self
Configure the timeout for the HyperAdapter
When unset, the underlying adaptor will not use any timeouts.
sourcepub fn hyper_builder(self, hyper_builder: Builder) -> Self
pub fn hyper_builder(self, hyper_builder: Builder) -> Self
Override the Hyper client Builder
used to construct this client.
This enables changing settings like forcing HTTP2 and modifying other default client behavior.