[][src]Struct h2::server::SendResponse

pub struct SendResponse<B: Buf> { /* fields omitted */ }

Send a response back to the client

A SendResponse instance is provided when receiving a request and is used to send the associated response back to the client. It is also used to explicitly reset the stream with a custom reason.

It will also be used to initiate push promises linked with the associated stream.

If the SendResponse instance is dropped without sending a response, then the HTTP/2.0 stream will be reset.

See module level docs for more details.


impl<B: Buf> SendResponse<B>[src]

pub fn send_response(
    &mut self,
    response: Response<()>,
    end_of_stream: bool
) -> Result<SendStream<B>, Error>

Send a response to a client request.

On success, a SendStream instance is returned. This instance can be used to stream the response body and send trailers.

If a body or trailers will be sent on the returned SendStream instance, then end_of_stream must be set to false when calling this function.

The SendResponse instance is already associated with a received request. This function may only be called once per instance and only if send_reset has not been previously called.

pub fn push_request(
    &mut self,
    request: Request<()>
) -> Result<SendPushedResponse<B>, Error>

Push a request and response to the client

On success, a SendResponse instance is returned.

pub fn send_reset(&mut self, reason: Reason)[src]

Send a stream reset to the peer.

This essentially cancels the stream, including any inbound or outbound data streams.

If this function is called before send_response, a call to send_response will result in an error.

If this function is called while a SendStream instance is active, any further use of the instance will result in an error.

This function should only be called once.

pub fn poll_reset(
    &mut self,
    cx: &mut Context<'_>
) -> Poll<Result<Reason, Error>>

Polls to be notified when the client resets this stream.

If stream is still open, this returns Poll::Pending, and registers the task to be notified if a RST_STREAM is received.

If a RST_STREAM frame is received for this stream, calling this method will yield the Reason for the reset.


Calling this method after having called send_response will return a user error.

pub fn stream_id(&self) -> StreamId[src]

Returns the stream ID of the response stream.


If the lock on the strean store has been poisoned.

Trait Implementations

impl<B: Debug + Buf> Debug for SendResponse<B>[src]

Auto Trait Implementations

impl<B> RefUnwindSafe for SendResponse<B>[src]

impl<B> Send for SendResponse<B> where
    B: Send

impl<B> Sync for SendResponse<B> where
    B: Send

impl<B> Unpin for SendResponse<B>[src]

impl<B> UnwindSafe for SendResponse<B>[src]

Blanket Implementations

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

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

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

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

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

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.