pub struct Next {
pub global_middlewares: Arc<Vec<Arc<dyn Fn(Request<TakoBody>, Next) -> Pin<Box<dyn Future<Output = Response<TakoBody>> + Send>> + Sync + Send>>>,
pub route_middlewares: Arc<Vec<Arc<dyn Fn(Request<TakoBody>, Next) -> Pin<Box<dyn Future<Output = Response<TakoBody>> + Send>> + Sync + Send>>>,
pub index: usize,
pub endpoint: BoxHandler,
}Expand description
Represents the next step in the middleware execution chain.
Next is passed to middleware functions to allow them to continue
the request processing chain. Calling next.run(req) will execute
the remaining middleware and eventually the endpoint handler.
Fields§
§global_middlewares: Arc<Vec<Arc<dyn Fn(Request<TakoBody>, Next) -> Pin<Box<dyn Future<Output = Response<TakoBody>> + Send>> + Sync + Send>>>Global middlewares to be executed before route-specific ones.
route_middlewares: Arc<Vec<Arc<dyn Fn(Request<TakoBody>, Next) -> Pin<Box<dyn Future<Output = Response<TakoBody>> + Send>> + Sync + Send>>>Route-specific middlewares executed after global ones.
index: usizeCurrent position within the middleware chain.
endpoint: BoxHandlerFinal endpoint handler to be called after all middlewares.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Next
impl !UnwindSafe for Next
impl Freeze for Next
impl Send for Next
impl Sync for Next
impl Unpin for Next
impl UnsafeUnpin for Next
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more