Struct Serve
#[must_use = "futures must be awaited or polled"]
pub struct Serve<L, M, S> { /* private fields */ }
Future returned by serve.
Implementations
impl<L, M, S> Serve<L, M, S>
where
L: Listener,
fn with_graceful_shutdown<F>(self, signal: F) -> WithGracefulShutdown<L, M, S, F> where F: Future<Output = ()> + Send + 'static,Prepares a server to handle graceful shutdown when the provided future completes.
Example
use ; # async ; asyncReturn Value
Similarly to
serve, although this future resolves toio::Result<()>, it will never error. It returnsOk(())only after thesignalfuture completes.fn local_addr(&self) -> Result<L::Addr>Returns the local address this server is bound to.
Trait Implementations
impl<L, M, S> Debug for Serve<L, M, S>
where
L: Debug + 'static,
M: Debug,
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl<L, M, S> IntoFuture for Serve<L, M, S>
where
L: Listener,
L::Addr: Debug,
M: for<'a> Service<IncomingStream<'a, L>, Error = Infallible, Response = S> + Send + 'static,
for<'a> <M as Service<IncomingStream<'a, L>>>::Future: Send,
S: Service<Request, Response = Response, Error = Infallible> + Clone + Send + 'static,
S::Future: Send,
type Output = Result<(), Error>;type IntoFuture = ServeFuture;fn into_future(self) -> Self::IntoFuture
Auto Trait Implementations
impl<L, M, S> Freeze for Serve<L, M, S>
where
L: Freeze,
M: Freeze,
PhantomData<fn() -> S>: Freeze,
impl<L, M, S> RefUnwindSafe for Serve<L, M, S>
where
L: RefUnwindSafe,
M: RefUnwindSafe,
PhantomData<fn() -> S>: RefUnwindSafe,
impl<L, M, S> Send for Serve<L, M, S>
where
L: Send,
M: Send,
PhantomData<fn() -> S>: Send,
impl<L, M, S> Sync for Serve<L, M, S>
where
L: Sync,
M: Sync,
PhantomData<fn() -> S>: Sync,
impl<L, M, S> Unpin for Serve<L, M, S>
where
L: Unpin,
M: Unpin,
PhantomData<fn() -> S>: Unpin,
impl<L, M, S> UnsafeUnpin for Serve<L, M, S>
where
L: UnsafeUnpin,
M: UnsafeUnpin,
PhantomData<fn() -> S>: UnsafeUnpin,
impl<L, M, S> UnwindSafe for Serve<L, M, S>
where
L: UnwindSafe,
M: UnwindSafe,
PhantomData<fn() -> S>: UnwindSafe,
Blanket Implementations
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for Serve<L, M, S>
where
ST: ?Sized,
DT: ?Sized,
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for Serve<L, M, S>
where
ST: ?Sized,
DT: ?Sized,
impl<T> Any for Serve<L, M, S>
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for Serve<L, M, S>
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for Serve<L, M, S>
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> From<T> for Serve<L, M, S>
fn from(t: T) -> TReturns the argument unchanged.
impl<T> Instrument for Serve<L, M, S>
impl<T> Read<Exclusive, BecauseExclusive> for Serve<L, M, S>
where
T: ?Sized,
impl<T> Same for Serve<L, M, S>
type Output = T;
impl<T> WithSubscriber for Serve<L, M, S>
impl<T, U> Into<U> for Serve<L, M, 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 Serve<L, M, S>
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for Serve<L, M, 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 Serve<L, M, S>
where
V: MultiLane<T>,
fn vzip(self) -> V