pub struct HttpService<F, Req: RequestState<Io<F>>, Err> { /* private fields */ }Expand description
An HTTP/1.1 and HTTP/2 transport service.
The protocol is selected from
HttpProtocol metadata attached to the I/O
stream, normally by a TLS ALPN acceptor. Connections without HTTP/2
metadata are handled as HTTP/1.
Implementations§
Source§impl<F, Req, Err> HttpService<F, Req, Err>where
F: Filter + 'static,
Req: RequestState<Io<F>>,
Req::State: Clone,
Err: ResponseError + 'static,
impl<F, Req, Err> HttpService<F, Req, Err>where
F: Filter + 'static,
Req: RequestState<Io<F>>,
Req::State: Clone,
Err: ResponseError + 'static,
Sourcepub fn new<H>(sf: impl IntoServiceFactory<H, Req::State, Request>) -> Selfwhere
H: ServiceFactory<Req::State, Request, Error = Err> + 'static,
H::Res: Into<Response>,
H::InitError: IntoFailure,
pub fn new<H>(sf: impl IntoServiceFactory<H, Req::State, Request>) -> Selfwhere
H: ServiceFactory<Req::State, Request, Error = Err> + 'static,
H::Res: Into<Response>,
H::InitError: IntoFailure,
Creates a service that supports HTTP/1.1 and HTTP/2.
Sourcepub fn h1<H>(
sf: impl IntoServiceFactory<H, Req::State, Request>,
) -> H1Service<F, Req, Err>where
H: ServiceFactory<Req::State, Request, Error = Err> + 'static,
H::Res: Into<Response>,
H::InitError: IntoFailure,
pub fn h1<H>(
sf: impl IntoServiceFactory<H, Req::State, Request>,
) -> H1Service<F, Req, Err>where
H: ServiceFactory<Req::State, Request, Error = Err> + 'static,
H::Res: Into<Response>,
H::InitError: IntoFailure,
Creates an HTTP/1-only service.
Sourcepub fn h2<H>(
sf: impl IntoServiceFactory<H, Req::State, Request>,
) -> H2Service<F, Req, Err>where
H: ServiceFactory<Req::State, Request, Error = Err> + 'static,
H::Res: Into<Response>,
H::InitError: IntoFailure,
pub fn h2<H>(
sf: impl IntoServiceFactory<H, Req::State, Request>,
) -> H2Service<F, Req, Err>where
H: ServiceFactory<Req::State, Request, Error = Err> + 'static,
H::Res: Into<Response>,
H::InitError: IntoFailure,
Creates an HTTP/2-only service.
Source§impl<F, Req, Err> HttpService<F, Req, Err>
impl<F, Req, Err> HttpService<F, Req, Err>
Sourcepub fn h1_control<Ctl>(
self,
ctl: impl IntoServiceFactory<Ctl, Req::State, Control<F, Err>>,
) -> Selfwhere
Ctl: ServiceFactory<Req::State, Control<F, Err>, Res = ControlAck<F>> + 'static,
Ctl::Error: IntoFailure,
Ctl::InitError: IntoFailure,
pub fn h1_control<Ctl>(
self,
ctl: impl IntoServiceFactory<Ctl, Req::State, Control<F, Err>>,
) -> Selfwhere
Ctl: ServiceFactory<Req::State, Control<F, Err>, Res = ControlAck<F>> + 'static,
Ctl::Error: IntoFailure,
Ctl::InitError: IntoFailure,
Provides the HTTP/1 control service.
The service receives the lifecycle events described by
h1::Control. Unless this method is called, the default action is
applied to each event without a service call.
Sourcepub fn h2_control<Ctl>(
self,
ctl: impl IntoServiceFactory<Ctl, Req::State, Control<Error<H2Error>>>,
) -> Selfwhere
Ctl: ServiceFactory<Req::State, Control<Error<H2Error>>, Res = ControlAck> + 'static,
Ctl::Error: IntoFailure,
Ctl::InitError: IntoFailure,
pub fn h2_control<Ctl>(
self,
ctl: impl IntoServiceFactory<Ctl, Req::State, Control<Error<H2Error>>>,
) -> Selfwhere
Ctl: ServiceFactory<Req::State, Control<Error<H2Error>>, Res = ControlAck> + 'static,
Ctl::Error: IntoFailure,
Ctl::InitError: IntoFailure,
Provides the HTTP/2 control service.
A default service that acknowledges each HTTP/2 control event is used unless this method is called.
Trait Implementations§
Source§impl<F, Req: RequestState<Io<F>>, Err> Debug for HttpService<F, Req, Err>
impl<F, Req: RequestState<Io<F>>, Err> Debug for HttpService<F, Req, Err>
Source§impl<St, F, Req, Err> Service<St, Req> for HttpService<F, Req, Err>where
F: Filter + 'static,
Req: RequestState<Io<F>>,
Req::State: Clone,
Err: ResponseError + 'static,
impl<St, F, Req, Err> Service<St, Req> for HttpService<F, Req, Err>where
F: Filter + 'static,
Req: RequestState<Io<F>>,
Req::State: Clone,
Err: ResponseError + 'static,
Source§type Error = DispatchError
type Error = DispatchError
Error produced while checking readiness or processing a request.
Source§async fn call(
&self,
req: Req,
_: Ctx<'_, Self, St>,
) -> Result<Self::Res, Self::Error>
async fn call( &self, req: Req, _: Ctx<'_, Self, St>, ) -> Result<Self::Res, Self::Error>
Processes a request and asynchronously returns the response. Read more
Source§async fn ready(&self, _: Ctx<'_, Self, St>) -> Result<(), Self::Error>
async fn ready(&self, _: Ctx<'_, Self, St>) -> Result<(), Self::Error>
Waits until the service is ready to process a request. Read more
Source§fn map<F, Res>(self, f: F) -> ServiceChain<Map<F, Self, Res>, St, Req>
fn map<F, Res>(self, f: F) -> ServiceChain<Map<F, Self, Res>, St, Req>
Maps this service’s output to a different type, returning a new service. Read more
Source§fn map_err<F, E>(self, f: F) -> ServiceChain<MapErr<F, Self, E>, St, Req>
fn map_err<F, E>(self, f: F) -> ServiceChain<MapErr<F, Self, E>, St, Req>
Maps this service’s error to a different type, returning a new service. Read more
Auto Trait Implementations§
impl<F, Req, Err> !RefUnwindSafe for HttpService<F, Req, Err>
impl<F, Req, Err> !Send for HttpService<F, Req, Err>
impl<F, Req, Err> !Sync for HttpService<F, Req, Err>
impl<F, Req, Err> !UnwindSafe for HttpService<F, Req, Err>
impl<F, Req, Err> Freeze for HttpService<F, Req, Err>
impl<F, Req, Err> Unpin for HttpService<F, Req, Err>
impl<F, Req, Err> UnsafeUnpin for HttpService<F, Req, Err>
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<S, St, Req> IntoService<S, St, Req> for Swhere
S: Service<St, Req>,
impl<S, St, Req> IntoService<S, St, Req> for Swhere
S: Service<St, Req>,
Source§fn into_service(self) -> S
fn into_service(self) -> S
Converts this value into a service.