pub struct RiMiddlewareChain { /* private fields */ }Expand description
Manages a chain of middleware components.
This struct maintains a list of middleware instances and provides methods for adding, removing, and executing middleware in sequence.
Implementations§
Source§impl RiMiddlewareChain
impl RiMiddlewareChain
Sourcepub fn add(&mut self, middleware: Arc<dyn RiMiddleware>)
pub fn add(&mut self, middleware: Arc<dyn RiMiddleware>)
Adds a middleware to the end of the chain.
§Parameters
middleware: The middleware to add to the chain
Sourcepub async fn execute(&self, request: &mut RiGatewayRequest) -> RiResult<()>
pub async fn execute(&self, request: &mut RiGatewayRequest) -> RiResult<()>
Executes all middleware in the chain on a request.
Middleware is executed in the order they were added to the chain. If any middleware returns an error, execution stops and the error is returned.
§Parameters
request: Mutable reference to the request being processed
§Returns
A RiResult<()> indicating success or failure
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RiMiddlewareChain
impl !RefUnwindSafe for RiMiddlewareChain
impl Send for RiMiddlewareChain
impl Sync for RiMiddlewareChain
impl Unpin for RiMiddlewareChain
impl UnsafeUnpin for RiMiddlewareChain
impl !UnwindSafe for RiMiddlewareChain
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request