Struct aws_smithy_client::erase::DynMiddleware
source · #[non_exhaustive]pub struct DynMiddleware<C>(_);
Expand description
A Smithy middleware that uses dynamic dispatch.
This type allows you to pay a small runtime cost to avoid having to name the exact middleware
you’re using anywhere you want to hold a Client
. Specifically, this will use Box
to
enable dynamic dispatch for every request that goes through the middleware, which increases
memory pressure and suffers an additional vtable indirection for each request, but is unlikely
to matter in all but the highest-performance settings.
Implementations§
source§impl<C> DynMiddleware<C>
impl<C> DynMiddleware<C>
sourcepub fn new<M: SmithyMiddleware<C> + Send + Sync + 'static>(
middleware: M
) -> Self
pub fn new<M: SmithyMiddleware<C> + Send + Sync + 'static>( middleware: M ) -> Self
Construct a new dynamically-dispatched Smithy middleware.
Trait Implementations§
source§impl<C> Clone for DynMiddleware<C>
impl<C> Clone for DynMiddleware<C>
source§impl<C> Debug for DynMiddleware<C>
impl<C> Debug for DynMiddleware<C>
source§impl<C> Layer<DispatchService<C>> for DynMiddleware<C>
impl<C> Layer<DispatchService<C>> for DynMiddleware<C>
§type Service = BoxCloneService<Request, Response, SendOperationError>
type Service = BoxCloneService<Request, Response, SendOperationError>
The wrapped service
source§fn layer(&self, inner: DispatchService<C>) -> Self::Service
fn layer(&self, inner: DispatchService<C>) -> Self::Service
Wrap the given service with the middleware, returning a new service
that has been decorated with the middleware.