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. After sending the final response, call RequestStream::finish to close the stream.
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>, StreamError>
pub async fn recv_data(&mut self) -> Result<Option<impl Buf>, StreamError>
Receive data sent from the client
Sourcepub fn poll_recv_data( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<Option<impl Buf>, StreamError>>
pub fn poll_recv_data( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<Option<impl Buf>, StreamError>>
Poll for data sent from the client
Sourcepub async fn recv_trailers(&mut self) -> Result<Option<HeaderMap>, StreamError>
pub async fn recv_trailers(&mut self) -> Result<Option<HeaderMap>, StreamError>
Receive an optional set of trailers for the request
Sourcepub fn poll_recv_trailers( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<Option<HeaderMap>, StreamError>>
pub fn poll_recv_trailers( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<Option<HeaderMap>, StreamError>>
Poll for 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<(), StreamError>
pub async fn send_response( &mut self, resp: Response<()>, ) -> Result<(), StreamError>
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<(), StreamError>
pub async fn send_data(&mut self, buf: B) -> Result<(), StreamError>
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<(), StreamError>
pub async fn send_trailers( &mut self, trailers: HeaderMap, ) -> Result<(), StreamError>
Send a set of trailers to end the response.
RequestStream::finish must be called to finalize a request.
Sourcepub async fn finish(&mut self) -> Result<(), StreamError>
pub async fn finish(&mut self) -> Result<(), StreamError>
End the response without trailers.
RequestStream::finish 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.