Struct Dispatcher

Source
pub(crate) struct Dispatcher<D, Bs: Body, I, T> {
    conn: Conn<I, Bs::Data, T>,
    dispatch: D,
    body_tx: Option<Sender>,
    body_rx: Pin<Box<Option<Bs>>>,
    is_closing: bool,
}

Fields§

§conn: Conn<I, Bs::Data, T>§dispatch: D§body_tx: Option<Sender>§body_rx: Pin<Box<Option<Bs>>>§is_closing: bool

Implementations§

Source§

impl<D, Bs, I, T> Dispatcher<D, Bs, I, T>
where D: Dispatch<PollItem = MessageHead<T::Outgoing>, PollBody = Bs, RecvItem = MessageHead<T::Incoming>> + Unpin, D::PollError: Into<Box<dyn StdError + Send + Sync>>, I: Read + Write + Unpin, T: Http1Transaction + Unpin, Bs: Body + 'static, Bs::Error: Into<Box<dyn StdError + Send + Sync>>,

Source

pub(crate) fn new(dispatch: D, conn: Conn<I, Bs::Data, T>) -> Self

Source

pub(crate) fn into_inner(self) -> (I, Bytes, D)

Source

pub(crate) fn poll_without_shutdown( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<()>>

Run this dispatcher until HTTP says this connection is done, but don’t call Write::shutdown on the underlying IO.

This is useful for old-style HTTP upgrades, but ignores newer-style upgrade API.

Source

fn poll_catch( &mut self, cx: &mut Context<'_>, should_shutdown: bool, ) -> Poll<Result<Dispatched>>

Source

fn poll_inner( &mut self, cx: &mut Context<'_>, should_shutdown: bool, ) -> Poll<Result<Dispatched>>

Source

fn poll_loop(&mut self, cx: &mut Context<'_>) -> Poll<Result<()>>

Source

fn poll_read(&mut self, cx: &mut Context<'_>) -> Poll<Result<()>>

Source

fn poll_read_head(&mut self, cx: &mut Context<'_>) -> Poll<Result<()>>

Source

fn poll_write(&mut self, cx: &mut Context<'_>) -> Poll<Result<()>>

Source

fn poll_flush(&mut self, cx: &mut Context<'_>) -> Poll<Result<()>>

Source

fn close(&mut self)

Source

fn is_done(&self) -> bool

Trait Implementations§

Source§

impl<D, Bs, I, T> Future for Dispatcher<D, Bs, I, T>
where D: Dispatch<PollItem = MessageHead<T::Outgoing>, PollBody = Bs, RecvItem = MessageHead<T::Incoming>> + Unpin, D::PollError: Into<Box<dyn StdError + Send + Sync>>, I: Read + Write + Unpin, T: Http1Transaction + Unpin, Bs: Body + 'static, Bs::Error: Into<Box<dyn StdError + Send + Sync>>,

Source§

type Output = Result<Dispatched, Error>

The type of value produced on completion.
Source§

fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>

Attempts to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. Read more

Auto Trait Implementations§

§

impl<D, Bs, I, T> Freeze for Dispatcher<D, Bs, I, T>
where D: Freeze, I: Freeze,

§

impl<D, Bs, I, T> !RefUnwindSafe for Dispatcher<D, Bs, I, T>

§

impl<D, Bs, I, T> Send for Dispatcher<D, Bs, I, T>
where D: Send, I: Send, Bs: Send, <Bs as Body>::Data: Send,

§

impl<D, Bs, I, T> Sync for Dispatcher<D, Bs, I, T>
where D: Sync, I: Sync, Bs: Sync, <Bs as Body>::Data: Sync,

§

impl<D, Bs, I, T> Unpin for Dispatcher<D, Bs, I, T>
where D: Unpin, I: Unpin,

§

impl<D, Bs, I, T> !UnwindSafe for Dispatcher<D, Bs, I, T>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T
where T: Future + ?Sized,

Source§

fn with_cancellation_token( self, cancellation_token: &CancellationToken, ) -> WithCancellationTokenFuture<'_, Self>
where Self: Sized,

Similar to CancellationToken::run_until_cancelled, but with the advantage that it is easier to write fluent call chains, and biased towards waiting for CancellationToken to complete. Read more
Source§

fn with_cancellation_token_owned( self, cancellation_token: CancellationToken, ) -> WithCancellationTokenFutureOwned<Self>
where Self: Sized,

Similar to CancellationToken::run_until_cancelled_owned, but with the advantage that it is easier to write fluent call chains, and biased towards waiting for CancellationToken to complete. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<F> IntoFuture for F
where F: Future,

Source§

type Output = <F as Future>::Output

The output that the future will produce on completion.
Source§

type IntoFuture = F

Which kind of future are we turning this into?
Source§

fn into_future(self) -> <F as IntoFuture>::IntoFuture

Creates a future from a value. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<F, T, E> TryFuture for F
where F: Future<Output = Result<T, E>> + ?Sized,

Source§

type Ok = T

The type of successful values yielded by this future
Source§

type Error = E

The type of failures yielded by this future
Source§

fn try_poll( self: Pin<&mut F>, cx: &mut Context<'_>, ) -> Poll<<F as Future>::Output>

Poll this TryFuture as if it were a Future. Read more
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more