pub struct DMSCMiddlewareChain { /* 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 DMSCMiddlewareChain
impl DMSCMiddlewareChain
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new empty middleware chain.
§Returns
A new DMSCMiddlewareChain instance with no middleware
Sourcepub fn add(&mut self, middleware: Arc<dyn DMSCMiddleware>)
pub fn add(&mut self, middleware: Arc<dyn DMSCMiddleware>)
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 DMSCGatewayRequest) -> DMSCResult<()>
pub async fn execute(&self, request: &mut DMSCGatewayRequest) -> DMSCResult<()>
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 DMSCResult<()> indicating success or failure
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DMSCMiddlewareChain
impl !RefUnwindSafe for DMSCMiddlewareChain
impl Send for DMSCMiddlewareChain
impl Sync for DMSCMiddlewareChain
impl Unpin for DMSCMiddlewareChain
impl !UnwindSafe for DMSCMiddlewareChain
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