Struct SendResponse
pub struct SendResponse<C>where
C: Connection,{ /* private fields */ }http-backend and http and std only.Expand description
Sends informational responses and a final response on one request stream.
Implementations§
§impl<C> SendResponse<C>where
C: Connection,
impl<C> SendResponse<C>where
C: Connection,
pub fn reset(self, code: Code) -> Result<(), Error>
pub fn reset(self, code: Code) -> Result<(), Error>
Reset the response and stop the request upload with the same application code.
The upload is stopped even while another owner retains its request body.
Unknown HTTP/3 codes are preserved when they fit QUIC’s integer range.
Use H3_REQUEST_REJECTED only when the application has not processed the
request, since that code allows the peer to retry it.
pub async fn ready_for_push(&self) -> Result<(), Error>
pub async fn ready_for_push(&self) -> Result<(), Error>
Wait for the peer to grant a push ID. Applications can apply their own deadline.
pub async fn push(
&mut self,
request: Request<()>,
) -> Result<SendResponse<C>, Error>
pub async fn push( &mut self, request: Request<()>, ) -> Result<SendResponse<C>, Error>
Promise a same-origin GET/HEAD and open its independently framed response stream. Both peers must opt into push. The configured quota is a lifetime bound.
pub fn peer_priority(&self) -> PriorityObserver
pub fn peer_priority(&self) -> PriorityObserver
Observe current and future effective priorities while relaying this response. Cancel the observer’s pending wait when this response completes.
pub fn set_priority(&mut self, priority: Priority)
pub fn set_priority(&mut self, priority: Priority)
Override peer priority using application knowledge.
pub async fn send_informational(
&mut self,
response: Response<()>,
) -> Result<(), Error>
pub async fn send_informational( &mut self, response: Response<()>, ) -> Result<(), Error>
Send a non-101 informational response before the final response.
pub async fn send_response<B>(self, response: Response<B>) -> Result<(), Error>
pub async fn send_response<B>(self, response: Response<B>) -> Result<(), Error>
Send final headers followed by the streaming response body and trailers. Completion waits for the peer to acknowledge the finished send direction.
Auto Trait Implementations§
impl<C> !Freeze for SendResponse<C>
impl<C> !RefUnwindSafe for SendResponse<C>
impl<C> !UnwindSafe for SendResponse<C>
impl<C> Send for SendResponse<C>where
Option<(Reader<<C as Connection>::RecvStream>, Pending, bool)>: Send,
Writer<<C as Connection>::SendStream>: Send,
impl<C> Sync for SendResponse<C>where
Option<(Reader<<C as Connection>::RecvStream>, Pending, bool)>: Sync,
Writer<<C as Connection>::SendStream>: Sync,
impl<C> Unpin for SendResponse<C>where
C: Unpin,
Option<(Reader<<C as Connection>::RecvStream>, Pending, bool)>: Unpin,
Writer<<C as Connection>::SendStream>: Unpin,
impl<C> UnsafeUnpin for SendResponse<C>where
C: UnsafeUnpin,
Option<(Reader<<C as Connection>::RecvStream>, Pending, bool)>: UnsafeUnpin,
Writer<<C as Connection>::SendStream>: UnsafeUnpin,
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more