pub struct RequestStream<S, B> { /* private fields */ }Expand description
Manage request and response transfer for an incoming request
The RequestStream struct is used to send and/or receive
information from the client.
Implementations§
Source§impl<S, B> RequestStream<S, B>where
S: RecvStream,
B: Buf,
impl<S, B> RequestStream<S, B>where
S: RecvStream,
B: Buf,
Sourcepub async fn recv_data(&mut self) -> Result<Option<impl Buf>, Error>
pub async fn recv_data(&mut self) -> Result<Option<impl Buf>, Error>
Receive data sent from the client
Sourcepub async fn recv_trailers(&mut self) -> Result<Option<HeaderMap>, Error>
pub async fn recv_trailers(&mut self) -> Result<Option<HeaderMap>, Error>
Receive an optional set of trailers for the request
Sourcepub fn stop_sending(&mut self, error_code: Code)
pub fn stop_sending(&mut self, error_code: Code)
Tell the peer to stop sending into the underlying QUIC stream
Source§impl<S, B> RequestStream<S, B>where
S: SendStream<B>,
B: Buf,
impl<S, B> RequestStream<S, B>where
S: SendStream<B>,
B: Buf,
Sourcepub async fn send_response(&mut self, resp: Response<()>) -> Result<(), Error>
pub async fn send_response(&mut self, resp: Response<()>) -> Result<(), Error>
Send the HTTP/3 response
This should be called before trying to send any data with
RequestStream::send_data.
Sourcepub async fn send_data(&mut self, buf: B) -> Result<(), Error>
pub async fn send_data(&mut self, buf: B) -> Result<(), Error>
Send some data on the response body.
Sourcepub fn stop_stream(&mut self, error_code: Code)
pub fn stop_stream(&mut self, error_code: Code)
Stop a stream with an error code
The code can be Code::H3_NO_ERROR.
Sourcepub async fn send_trailers(&mut self, trailers: HeaderMap) -> Result<(), Error>
pub async fn send_trailers(&mut self, trailers: HeaderMap) -> Result<(), Error>
Send a set of trailers to end the response.
Either RequestStream::finish or
RequestStream::send_trailers must be called to finalize a
request.
Sourcepub async fn finish(&mut self) -> Result<(), Error>
pub async fn finish(&mut self) -> Result<(), Error>
End the response without trailers.
Either RequestStream::finish or
RequestStream::send_trailers must be called to finalize a
request.
Source§impl<S, B> RequestStream<S, B>where
S: BidiStream<B>,
B: Buf,
impl<S, B> RequestStream<S, B>where
S: BidiStream<B>,
B: Buf,
Sourcepub fn split(
self,
) -> (RequestStream<S::SendStream, B>, RequestStream<S::RecvStream, B>)
pub fn split( self, ) -> (RequestStream<S::SendStream, B>, RequestStream<S::RecvStream, B>)
Splits the Request-Stream into send and receive. This can be used the send and receive data on different tasks.