Skip to main content

LayerStack

Struct LayerStack 

Source
pub struct LayerStack<S> { /* private fields */ }
Expand description

A stack for managing and applying middleware layers to a router.

LayerStack provides a way to accumulate layers and apply them to a router in the order they were added. Layers are applied via the push() method during configuration, and then applied to the router via apply() during the build phase.

Implementations§

Source§

impl<S> LayerStack<S>
where S: Clone + Send + Sync + 'static,

Source

pub fn new() -> Self

Source

pub fn push<L>(&mut self, layer: L)
where L: Layer<Route> + Clone + Send + Sync + 'static, L::Service: Service<Request> + Clone + Send + Sync + 'static, <L::Service as Service<Request>>::Response: IntoResponse + 'static, <L::Service as Service<Request>>::Error: Into<Infallible> + 'static, <L::Service as Service<Request>>::Future: Send + 'static,

Add a layer to the stack.

Layers are applied in FIFO order when apply() is called. Each layer will wrap the router after all controllers have been registered.

Source

pub fn apply(&self, router: Router<S>) -> Router<S>

Apply all layers to the given router.

Layers are applied in FIFO order (first pushed = first applied = outermost).

Trait Implementations§

Source§

impl<S> Default for LayerStack<S>
where S: Clone + Send + Sync + 'static,

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<S> !RefUnwindSafe for LayerStack<S>

§

impl<S> !UnwindSafe for LayerStack<S>

§

impl<S> Freeze for LayerStack<S>

§

impl<S> Send for LayerStack<S>

§

impl<S> Sync for LayerStack<S>

§

impl<S> Unpin for LayerStack<S>

§

impl<S> UnsafeUnpin for LayerStack<S>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more