Struct HandlerService
pub struct HandlerService<H, T, S> { /* private fields */ }
An adapter that makes a Handler into a Service.
Created with Handler::with_state or HandlerWithoutStateExt::into_service.
Implementations
impl<H, T, S> HandlerService<H, T, S>
fn state(&self) -> &SGet a reference to the state.
fn into_make_service(self) -> IntoMakeService<HandlerService<H, T, S>>Convert the handler into a
MakeService.This allows you to serve a single handler if you don't need any routing:
use ; use SocketAddr; async let app = handler.with_state; # async ;fn into_make_service_with_connect_info<C>(self) -> IntoMakeServiceWithConnectInfo<HandlerService<H, T, S>, C>Convert the handler into a
MakeServicewhich stores information about the incoming connection.See
Router::into_make_service_with_connect_infofor more details.use ; use SocketAddr; ; async let app = handler.with_state; # async ;
Trait Implementations
impl<H, T, S> Clone for HandlerService<H, T, S>
where
H: Clone,
S: Clone,
fn clone(&self) -> Self
impl<H, T, S> Debug for HandlerService<H, T, S>
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl<H, T, S, B> Service<Request<B>> for HandlerService<H, T, S>
where
H: Handler<T, S> + Clone + Send + 'static,
B: HttpBody<Data = Bytes> + Send + 'static,
B::Error: Into<BoxError>,
S: Clone + Send + Sync,
type Response = Response<Body>;type Error = never;type Future = IntoServiceFuture<<H as Handler<T, S>>::Future>;fn poll_ready(&mut self, _cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>fn call(&mut self, req: Request<B>) -> Self::Future
impl<H, T, S, L> Service<IncomingStream<'_, L>> for HandlerService<H, T, S>
where
H: Clone,
S: Clone,
L: Listener,
type Response = HandlerService<H, T, S>;type Error = never;type Future = Ready<Result<<HandlerService<H, T, S> as Service<IncomingStream<'_, L>>>::Response, <HandlerService<H, T, S> as Service<IncomingStream<'_, L>>>::Error>>;fn poll_ready(&mut self, _cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>fn call(&mut self, _req: IncomingStream<'_, L>) -> Self::Future
Auto Trait Implementations
impl<H, T, S> Freeze for HandlerService<H, T, S>
where
H: Freeze,
S: Freeze,
PhantomData<fn() -> T>: Freeze,
impl<H, T, S> RefUnwindSafe for HandlerService<H, T, S>
where
H: RefUnwindSafe,
S: RefUnwindSafe,
PhantomData<fn() -> T>: RefUnwindSafe,
impl<H, T, S> Send for HandlerService<H, T, S>
where
H: Send,
S: Send,
PhantomData<fn() -> T>: Send,
impl<H, T, S> Sync for HandlerService<H, T, S>
where
H: Sync,
S: Sync,
PhantomData<fn() -> T>: Sync,
impl<H, T, S> Unpin for HandlerService<H, T, S>
where
H: Unpin,
S: Unpin,
PhantomData<fn() -> T>: Unpin,
impl<H, T, S> UnsafeUnpin for HandlerService<H, T, S>
where
H: UnsafeUnpin,
S: UnsafeUnpin,
PhantomData<fn() -> T>: UnsafeUnpin,
impl<H, T, S> UnwindSafe for HandlerService<H, T, S>
where
H: UnwindSafe,
S: UnwindSafe,
PhantomData<fn() -> T>: UnwindSafe,
Blanket Implementations
impl<C, Target> MakeConnection<Target> for HandlerService<H, T, S>
where
C: Service<Target>,
<C as Service<Target>>::Response: AsyncRead + AsyncWrite,
type Connection = <C as Service<Target>>::Response;type Error = <C as Service<Target>>::Error;type Future = <C as Service<Target>>::Future;fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), <C as MakeConnection<Target>>::Error>>fn make_connection(&mut self, target: Target) -> <C as MakeConnection<Target>>::Future
impl<M, S, Target, Request> MakeService<Target, Request> for HandlerService<H, T, S>
where
M: Service<Target, Response = S>,
S: Service<Request>,
type Response = <S as Service<Request>>::Response;type Error = <S as Service<Request>>::Error;type Service = S;type MakeError = <M as Service<Target>>::Error;type Future = <M as Service<Target>>::Future;fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), <M as MakeService<Target, Request>>::MakeError>>fn make_service(&mut self, target: Target) -> <M as MakeService<Target, Request>>::Future
impl<S, R> ServiceExt<R> for HandlerService<H, T, S>
where
S: Service<R>,
fn into_make_service(self) -> IntoMakeService<S>fn into_make_service_with_connect_info<C>(self) -> IntoMakeServiceWithConnectInfo<S, C>
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for HandlerService<H, T, S>
where
ST: ?Sized,
DT: ?Sized,
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for HandlerService<H, T, S>
where
ST: ?Sized,
DT: ?Sized,
impl<T> Any for HandlerService<H, T, S>
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for HandlerService<H, T, S>
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for HandlerService<H, T, S>
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for HandlerService<H, T, S>
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> From<T> for HandlerService<H, T, S>
fn from(t: T) -> TReturns the argument unchanged.
impl<T> FromRef<T> for HandlerService<H, T, S>
where
T: Clone,
fn from_ref(input: &T) -> T
impl<T> Instrument for HandlerService<H, T, S>
impl<T> Read<Exclusive, BecauseExclusive> for HandlerService<H, T, S>
where
T: ?Sized,
impl<T> Same for HandlerService<H, T, S>
type Output = T;
impl<T> ToOwned for HandlerService<H, T, S>
where
T: Clone,
type Owned = T;fn to_owned(&self) -> Tfn clone_into(&self, target: &mut T)
impl<T> WithSubscriber for HandlerService<H, T, S>
impl<T, Request> ServiceExt<Request> for HandlerService<H, T, S>
where
T: Service<Request> + ?Sized,
impl<T, U> Into<U> for HandlerService<H, T, S>
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for HandlerService<H, T, S>
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for HandlerService<H, T, S>
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
impl<V, T> VZip<V> for HandlerService<H, T, S>
where
V: MultiLane<T>,
fn vzip(self) -> V