Struct SetForwardedHeadersService
pub struct SetForwardedHeadersService<S, T = Forwarded> { /* private fields */ }Available on crate feature
http only.Expand description
Middleware Service to write Forwarded information for this proxy,
added to the end of the chain of forwarded information already known.
See SetForwardedHeadersLayer for more information.
Implementations§
§impl<S, T> SetForwardedHeadersService<S, T>
impl<S, T> SetForwardedHeadersService<S, T>
pub fn new(inner: S) -> SetForwardedHeadersService<S, T>
pub fn new(inner: S) -> SetForwardedHeadersService<S, T>
Create a new SetForwardedHeadersService for the specified headers T.
Trait Implementations§
§impl<S, T> Clone for SetForwardedHeadersService<S, T>where
S: Clone,
impl<S, T> Clone for SetForwardedHeadersService<S, T>where
S: Clone,
§fn clone(&self) -> SetForwardedHeadersService<S, T>
fn clone(&self) -> SetForwardedHeadersService<S, T>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read more§impl<S, T> Debug for SetForwardedHeadersService<S, T>where
S: Debug,
impl<S, T> Debug for SetForwardedHeadersService<S, T>where
S: Debug,
§impl<S, T1, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1,)>
impl<S, T1, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1,)>
§type Response = <S as Service<Request<Body>>>::Response
type Response = <S as Service<Request<Body>>>::Response
The type of response returned by the service.
§async fn serve(
&self,
req: Request<Body>,
) -> Result<<SetForwardedHeadersService<S, (T1,)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1,)> as Service<Request<Body>>>::Error>
async fn serve( &self, req: Request<Body>, ) -> Result<<SetForwardedHeadersService<S, (T1,)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1,)> as Service<Request<Body>>>::Error>
Serve a response or error for the given request,
using the given context.
§fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
Box this service to allow for dynamic dispatch.
§impl<S, T1, T2, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2)>
impl<S, T1, T2, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2)>
§type Response = <S as Service<Request<Body>>>::Response
type Response = <S as Service<Request<Body>>>::Response
The type of response returned by the service.
§async fn serve(
&self,
req: Request<Body>,
) -> Result<<SetForwardedHeadersService<S, (T1, T2)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2)> as Service<Request<Body>>>::Error>
async fn serve( &self, req: Request<Body>, ) -> Result<<SetForwardedHeadersService<S, (T1, T2)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2)> as Service<Request<Body>>>::Error>
Serve a response or error for the given request,
using the given context.
§fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
Box this service to allow for dynamic dispatch.
§impl<S, T1, T2, T3, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3)>
impl<S, T1, T2, T3, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3)>
§type Response = <S as Service<Request<Body>>>::Response
type Response = <S as Service<Request<Body>>>::Response
The type of response returned by the service.
§async fn serve(
&self,
req: Request<Body>,
) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3)> as Service<Request<Body>>>::Error>
async fn serve( &self, req: Request<Body>, ) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3)> as Service<Request<Body>>>::Error>
Serve a response or error for the given request,
using the given context.
§fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
Box this service to allow for dynamic dispatch.
§impl<S, T1, T2, T3, T4, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
impl<S, T1, T2, T3, T4, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
§type Response = <S as Service<Request<Body>>>::Response
type Response = <S as Service<Request<Body>>>::Response
The type of response returned by the service.
§async fn serve(
&self,
req: Request<Body>,
) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4)> as Service<Request<Body>>>::Error>
async fn serve( &self, req: Request<Body>, ) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4)> as Service<Request<Body>>>::Error>
Serve a response or error for the given request,
using the given context.
§fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
Box this service to allow for dynamic dispatch.
§impl<S, T1, T2, T3, T4, T5, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4, T5)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
T5: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
impl<S, T1, T2, T3, T4, T5, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4, T5)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
T5: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
§type Response = <S as Service<Request<Body>>>::Response
type Response = <S as Service<Request<Body>>>::Response
The type of response returned by the service.
§async fn serve(
&self,
req: Request<Body>,
) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4, T5)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4, T5)> as Service<Request<Body>>>::Error>
async fn serve( &self, req: Request<Body>, ) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4, T5)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4, T5)> as Service<Request<Body>>>::Error>
Serve a response or error for the given request,
using the given context.
§fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
Box this service to allow for dynamic dispatch.
§impl<S, T1, T2, T3, T4, T5, T6, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
T5: ForwardHeader + Send + Sync + 'static,
T6: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
impl<S, T1, T2, T3, T4, T5, T6, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
T5: ForwardHeader + Send + Sync + 'static,
T6: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
§type Response = <S as Service<Request<Body>>>::Response
type Response = <S as Service<Request<Body>>>::Response
The type of response returned by the service.
§async fn serve(
&self,
req: Request<Body>,
) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6)> as Service<Request<Body>>>::Error>
async fn serve( &self, req: Request<Body>, ) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6)> as Service<Request<Body>>>::Error>
Serve a response or error for the given request,
using the given context.
§fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
Box this service to allow for dynamic dispatch.
§impl<S, T1, T2, T3, T4, T5, T6, T7, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
T5: ForwardHeader + Send + Sync + 'static,
T6: ForwardHeader + Send + Sync + 'static,
T7: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
impl<S, T1, T2, T3, T4, T5, T6, T7, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
T5: ForwardHeader + Send + Sync + 'static,
T6: ForwardHeader + Send + Sync + 'static,
T7: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
§type Response = <S as Service<Request<Body>>>::Response
type Response = <S as Service<Request<Body>>>::Response
The type of response returned by the service.
§async fn serve(
&self,
req: Request<Body>,
) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7)> as Service<Request<Body>>>::Error>
async fn serve( &self, req: Request<Body>, ) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7)> as Service<Request<Body>>>::Error>
Serve a response or error for the given request,
using the given context.
§fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
Box this service to allow for dynamic dispatch.
§impl<S, T1, T2, T3, T4, T5, T6, T7, T8, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
T5: ForwardHeader + Send + Sync + 'static,
T6: ForwardHeader + Send + Sync + 'static,
T7: ForwardHeader + Send + Sync + 'static,
T8: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
impl<S, T1, T2, T3, T4, T5, T6, T7, T8, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
T5: ForwardHeader + Send + Sync + 'static,
T6: ForwardHeader + Send + Sync + 'static,
T7: ForwardHeader + Send + Sync + 'static,
T8: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
§type Response = <S as Service<Request<Body>>>::Response
type Response = <S as Service<Request<Body>>>::Response
The type of response returned by the service.
§async fn serve(
&self,
req: Request<Body>,
) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8)> as Service<Request<Body>>>::Error>
async fn serve( &self, req: Request<Body>, ) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8)> as Service<Request<Body>>>::Error>
Serve a response or error for the given request,
using the given context.
§fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
Box this service to allow for dynamic dispatch.
§impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
T5: ForwardHeader + Send + Sync + 'static,
T6: ForwardHeader + Send + Sync + 'static,
T7: ForwardHeader + Send + Sync + 'static,
T8: ForwardHeader + Send + Sync + 'static,
T9: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
T5: ForwardHeader + Send + Sync + 'static,
T6: ForwardHeader + Send + Sync + 'static,
T7: ForwardHeader + Send + Sync + 'static,
T8: ForwardHeader + Send + Sync + 'static,
T9: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
§type Response = <S as Service<Request<Body>>>::Response
type Response = <S as Service<Request<Body>>>::Response
The type of response returned by the service.
§async fn serve(
&self,
req: Request<Body>,
) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9)> as Service<Request<Body>>>::Error>
async fn serve( &self, req: Request<Body>, ) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9)> as Service<Request<Body>>>::Error>
Serve a response or error for the given request,
using the given context.
§fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
Box this service to allow for dynamic dispatch.
§impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
T5: ForwardHeader + Send + Sync + 'static,
T6: ForwardHeader + Send + Sync + 'static,
T7: ForwardHeader + Send + Sync + 'static,
T8: ForwardHeader + Send + Sync + 'static,
T9: ForwardHeader + Send + Sync + 'static,
T10: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
T5: ForwardHeader + Send + Sync + 'static,
T6: ForwardHeader + Send + Sync + 'static,
T7: ForwardHeader + Send + Sync + 'static,
T8: ForwardHeader + Send + Sync + 'static,
T9: ForwardHeader + Send + Sync + 'static,
T10: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
§type Response = <S as Service<Request<Body>>>::Response
type Response = <S as Service<Request<Body>>>::Response
The type of response returned by the service.
§async fn serve(
&self,
req: Request<Body>,
) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> as Service<Request<Body>>>::Error>
async fn serve( &self, req: Request<Body>, ) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> as Service<Request<Body>>>::Error>
Serve a response or error for the given request,
using the given context.
§fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
Box this service to allow for dynamic dispatch.
§impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
T5: ForwardHeader + Send + Sync + 'static,
T6: ForwardHeader + Send + Sync + 'static,
T7: ForwardHeader + Send + Sync + 'static,
T8: ForwardHeader + Send + Sync + 'static,
T9: ForwardHeader + Send + Sync + 'static,
T10: ForwardHeader + Send + Sync + 'static,
T11: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
T5: ForwardHeader + Send + Sync + 'static,
T6: ForwardHeader + Send + Sync + 'static,
T7: ForwardHeader + Send + Sync + 'static,
T8: ForwardHeader + Send + Sync + 'static,
T9: ForwardHeader + Send + Sync + 'static,
T10: ForwardHeader + Send + Sync + 'static,
T11: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
§type Response = <S as Service<Request<Body>>>::Response
type Response = <S as Service<Request<Body>>>::Response
The type of response returned by the service.
§async fn serve(
&self,
req: Request<Body>,
) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> as Service<Request<Body>>>::Error>
async fn serve( &self, req: Request<Body>, ) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> as Service<Request<Body>>>::Error>
Serve a response or error for the given request,
using the given context.
§fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
Box this service to allow for dynamic dispatch.
§impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
T5: ForwardHeader + Send + Sync + 'static,
T6: ForwardHeader + Send + Sync + 'static,
T7: ForwardHeader + Send + Sync + 'static,
T8: ForwardHeader + Send + Sync + 'static,
T9: ForwardHeader + Send + Sync + 'static,
T10: ForwardHeader + Send + Sync + 'static,
T11: ForwardHeader + Send + Sync + 'static,
T12: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
impl<S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, Body> Service<Request<Body>> for SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>where
T1: ForwardHeader + Send + Sync + 'static,
T2: ForwardHeader + Send + Sync + 'static,
T3: ForwardHeader + Send + Sync + 'static,
T4: ForwardHeader + Send + Sync + 'static,
T5: ForwardHeader + Send + Sync + 'static,
T6: ForwardHeader + Send + Sync + 'static,
T7: ForwardHeader + Send + Sync + 'static,
T8: ForwardHeader + Send + Sync + 'static,
T9: ForwardHeader + Send + Sync + 'static,
T10: ForwardHeader + Send + Sync + 'static,
T11: ForwardHeader + Send + Sync + 'static,
T12: ForwardHeader + Send + Sync + 'static,
S: Service<Request<Body>>,
<S as Service<Request<Body>>>::Error: Into<Box<dyn Error + Send + Sync>>,
Body: Send + 'static,
§type Response = <S as Service<Request<Body>>>::Response
type Response = <S as Service<Request<Body>>>::Response
The type of response returned by the service.
§async fn serve(
&self,
req: Request<Body>,
) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> as Service<Request<Body>>>::Error>
async fn serve( &self, req: Request<Body>, ) -> Result<<SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> as Service<Request<Body>>>::Response, <SetForwardedHeadersService<S, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> as Service<Request<Body>>>::Error>
Serve a response or error for the given request,
using the given context.
§fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
Box this service to allow for dynamic dispatch.
Auto Trait Implementations§
impl<S, T> Freeze for SetForwardedHeadersService<S, T>where
S: Freeze,
impl<S, T> RefUnwindSafe for SetForwardedHeadersService<S, T>where
S: RefUnwindSafe,
impl<S, T> Send for SetForwardedHeadersService<S, T>where
S: Send,
impl<S, T> Sync for SetForwardedHeadersService<S, T>where
S: Sync,
impl<S, T> Unpin for SetForwardedHeadersService<S, T>where
S: Unpin,
impl<S, T> UnwindSafe for SetForwardedHeadersService<S, T>where
S: UnwindSafe,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<S, Request, Connection> ConnectorService<Request> for S
impl<S, Request, Connection> ConnectorService<Request> for S
§type Connection = Connection
type Connection = Connection
Connection returned by the
ConnectorService§fn connect(
&self,
req: Request,
) -> impl Future<Output = Result<EstablishedClientConnection<<S as ConnectorService<Request>>::Connection, Request>, <S as ConnectorService<Request>>::Error>> + Send
fn connect( &self, req: Request, ) -> impl Future<Output = Result<EstablishedClientConnection<<S as ConnectorService<Request>>::Connection, Request>, <S as ConnectorService<Request>>::Error>> + Send
Establish a connection, which often involves some kind of handshake,
or connection revival.
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<S, Body> HttpClientExt for S
impl<S, Body> HttpClientExt for S
§type ExecuteResponse = Response<Body>
type ExecuteResponse = Response<Body>
The response type returned by the
execute method.§type ExecuteError = <S as Service<Request>>::Error
type ExecuteError = <S as Service<Request>>::Error
The error type returned by the
execute method.§fn get(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn get( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
Convenience method to make a
GET request to a URL. Read more§fn post(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn post( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
Convenience method to make a
POST request to a URL. Read more§fn put(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn put( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
Convenience method to make a
PUT request to a URL. Read more§fn patch(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn patch( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
Convenience method to make a
PATCH request to a URL. Read more§fn delete(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn delete( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
Convenience method to make a
DELETE request to a URL. Read more§fn head(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn head( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
Convenience method to make a
HEAD request to a URL. Read more§fn connect(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn connect( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
Convenience method to make a
CONNECT request to a URL. Read more§fn request(
&self,
method: Method,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn request( &self, method: Method, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
§fn build_from_request<RequestBody>(
&self,
request: Request<RequestBody>,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn build_from_request<RequestBody>( &self, request: Request<RequestBody>, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
§fn execute(
&self,
request: Request,
) -> impl Future<Output = Result<<S as HttpClientExt>::ExecuteResponse, <S as HttpClientExt>::ExecuteError>>
fn execute( &self, request: Request, ) -> impl Future<Output = Result<<S as HttpClientExt>::ExecuteResponse, <S as HttpClientExt>::ExecuteError>>
Executes a
Request. Read more§impl<S, Body> HttpClientWebSocketExt<Body> for S
impl<S, Body> HttpClientWebSocketExt<Body> for S
§fn websocket(
&self,
url: impl IntoUrl,
) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
fn websocket( &self, url: impl IntoUrl, ) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
Create a new
WebSocketRequestBuilder] to be used to establish a WebSocket connection over http/1.1.§fn websocket_h2(
&self,
url: impl IntoUrl,
) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
fn websocket_h2( &self, url: impl IntoUrl, ) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
Create a new
WebSocketRequestBuilder to be used to establish a WebSocket connection over h2.§fn websocket_with_request<RequestBody>(
&self,
req: Request<RequestBody>,
) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
fn websocket_with_request<RequestBody>( &self, req: Request<RequestBody>, ) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
Create a new
WebSocketRequestBuilder starting from the given request. 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 more§impl<S, R> IntoEndpointService<(R,)> for Swhere
S: Service<Request, Response = R, Error = Infallible>,
R: IntoResponse + Send + Sync + 'static,
impl<S, R> IntoEndpointService<(R,)> for Swhere
S: Service<Request, Response = R, Error = Infallible>,
R: IntoResponse + Send + Sync + 'static,
§fn into_endpoint_service(
self,
) -> impl Service<Request, Response = Response, Error = Infallible>
fn into_endpoint_service( self, ) -> impl Service<Request, Response = Response, Error = Infallible>
convert the type into a
rama_core::Service.§impl<S, R, State> IntoEndpointServiceWithState<(R,), State> for Swhere
S: Service<Request, Response = R, Error = Infallible>,
R: IntoResponse + Send + Sync + 'static,
impl<S, R, State> IntoEndpointServiceWithState<(R,), State> for Swhere
S: Service<Request, Response = R, Error = Infallible>,
R: IntoResponse + Send + Sync + 'static,
§fn into_endpoint_service_with_state(
self,
_state: State,
) -> impl Service<Request, Response = Response, Error = Infallible>
fn into_endpoint_service_with_state( self, _state: State, ) -> impl Service<Request, Response = Response, Error = Infallible>
convert the type into a
rama_core::Service with state.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Create a new
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more§impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
fn rama_try_from(value: T) -> Result<U, <U as RamaTryFrom<T>>::Error>
§impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
type Error = <U as RamaTryFrom<T, CrateMarker>>::Error
fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T, CrateMarker>>::Error>
§impl<S, RequestIn, RequestOut> RequestInspector<RequestIn> for S
impl<S, RequestIn, RequestOut> RequestInspector<RequestIn> for S
type RequestOut = RequestOut
§fn inspect_request(
&self,
req: RequestIn,
) -> impl Future<Output = Result<<S as RequestInspector<RequestIn>>::RequestOut, <S as RequestInspector<RequestIn>>::Error>> + Send
fn inspect_request( &self, req: RequestIn, ) -> impl Future<Output = Result<<S as RequestInspector<RequestIn>>::RequestOut, <S as RequestInspector<RequestIn>>::Error>> + Send
Inspect the request, modify it if needed or desired, and return it.