pub struct MiddlewareBackend { /* private fields */ }Expand description
An HttpBackend that runs an ordered chain of Middleware around an inner backend.
The first middleware in the chain runs outermost (see the module docs for ordering and
composability). Purely additive: it takes effect only when a caller wraps their backend in it and
installs it via Client::with_backend.
Implementations§
Source§impl MiddlewareBackend
impl MiddlewareBackend
Sourcepub fn new(inner: Arc<dyn HttpBackend>) -> Self
pub fn new(inner: Arc<dyn HttpBackend>) -> Self
Start a chain around inner with no middlewares; add them with Self::layer.
Sourcepub fn with_middlewares(
inner: Arc<dyn HttpBackend>,
middlewares: Vec<Arc<dyn Middleware>>,
) -> Self
pub fn with_middlewares( inner: Arc<dyn HttpBackend>, middlewares: Vec<Arc<dyn Middleware>>, ) -> Self
Wrap inner with a pre-built ordered list of middlewares (index 0 runs outermost).
Sourcepub fn layer(self, middleware: Arc<dyn Middleware>) -> Self
pub fn layer(self, middleware: Arc<dyn Middleware>) -> Self
Append a middleware to the chain and return self, for builder-style construction. Each
appended middleware runs inside the ones added before it (the first added is outermost).
Sourcepub fn inner(&self) -> &Arc<dyn HttpBackend> ⓘ
pub fn inner(&self) -> &Arc<dyn HttpBackend> ⓘ
The wrapped inner backend.
Sourcepub fn middlewares(&self) -> &[Arc<dyn Middleware>]
pub fn middlewares(&self) -> &[Arc<dyn Middleware>]
The middleware chain, in run order (index 0 is outermost).
Trait Implementations§
Source§impl Clone for MiddlewareBackend
impl Clone for MiddlewareBackend
Source§impl Debug for MiddlewareBackend
impl Debug for MiddlewareBackend
Source§impl HttpBackend for MiddlewareBackend
impl HttpBackend for MiddlewareBackend
Source§fn execute(&self, request: Request) -> ExecuteFuture<'_>
fn execute(&self, request: Request) -> ExecuteFuture<'_>
Execute a prepared request, yielding the raw response or a transport failure. A backend that
fails should wrap the originating
reqwest::Error via TransportError::new so
[super::send] can reclassify timeouts/redirects/protocol errors into the taxonomy.Auto Trait Implementations§
impl !RefUnwindSafe for MiddlewareBackend
impl !UnwindSafe for MiddlewareBackend
impl Freeze for MiddlewareBackend
impl Send for MiddlewareBackend
impl Sync for MiddlewareBackend
impl Unpin for MiddlewareBackend
impl UnsafeUnpin for MiddlewareBackend
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more