pub struct CancelAwareStream<S> { /* private fields */ }Expand description
A stream that wraps another stream and respects cancellation via Cx.
On each poll, this stream checks if cancellation has been requested
via the capability context. If so, it returns None to stop the stream.
This enables graceful handling of:
- Client disconnects
- Request timeouts (budget exhaustion)
- Server shutdown
Implementations§
Source§impl<S> CancelAwareStream<S>
impl<S> CancelAwareStream<S>
Trait Implementations§
Auto Trait Implementations§
impl<S> Freeze for CancelAwareStream<S>where
S: Freeze,
impl<S> !RefUnwindSafe for CancelAwareStream<S>
impl<S> Send for CancelAwareStream<S>where
S: Send,
impl<S> Sync for CancelAwareStream<S>where
S: Sync,
impl<S> Unpin for CancelAwareStream<S>where
S: Unpin,
impl<S> !UnwindSafe for CancelAwareStream<S>
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Instruments this future with a span (no-op when disabled).
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Instruments this future with the current span (no-op when disabled).
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<S> StreamExt for S
impl<S> StreamExt for S
Source§fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F>
fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F>
Transforms each item using an async closure.
Source§fn zip<S2>(self, other: S2) -> Zip<Self, S2>
fn zip<S2>(self, other: S2) -> Zip<Self, S2>
Zips this stream with another stream, yielding pairs.
Source§fn filter<P>(self, predicate: P) -> Filter<Self, P>
fn filter<P>(self, predicate: P) -> Filter<Self, P>
Yields only items that match the predicate.
Source§fn filter_map<T, F>(self, f: F) -> FilterMap<Self, F>
fn filter_map<T, F>(self, f: F) -> FilterMap<Self, F>
Filters and transforms items in one step.
Source§fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
Takes items while the predicate is true.
Source§fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
Skips items while the predicate is true.
Source§fn buffered(self, n: usize) -> Buffered<Self>
fn buffered(self, n: usize) -> Buffered<Self>
Buffers up to
n futures, preserving output order.Source§fn buffer_unordered(self, n: usize) -> BufferUnordered<Self>
fn buffer_unordered(self, n: usize) -> BufferUnordered<Self>
Buffers up to
n futures, yielding results as they complete.Source§fn chunks(self, size: usize) -> Chunks<Self>where
Self: Sized,
fn chunks(self, size: usize) -> Chunks<Self>where
Self: Sized,
Collects items into fixed-size chunks.
Source§fn ready_chunks(self, size: usize) -> ReadyChunks<Self>where
Self: Sized,
fn ready_chunks(self, size: usize) -> ReadyChunks<Self>where
Self: Sized,
Yields immediately available items up to a maximum chunk size.
Source§fn fold<Acc, F>(self, init: Acc, f: F) -> Fold<Self, F, Acc>
fn fold<Acc, F>(self, init: Acc, f: F) -> Fold<Self, F, Acc>
Folds all items into a single value.
Source§fn for_each_async<F, Fut>(self, f: F) -> ForEachAsync<Self, F, Fut>
fn for_each_async<F, Fut>(self, f: F) -> ForEachAsync<Self, F, Fut>
Executes an async closure for each item.
Source§fn try_collect<T, E, C>(self) -> TryCollect<Self, C>
fn try_collect<T, E, C>(self) -> TryCollect<Self, C>
Collects items from a stream of Results, short-circuiting on error.
Source§fn try_fold<T, E, Acc, F>(self, init: Acc, f: F) -> TryFold<Self, F, Acc>
fn try_fold<T, E, Acc, F>(self, init: Acc, f: F) -> TryFold<Self, F, Acc>
Folds a stream of Results, short-circuiting on error.
Source§fn try_for_each<F, E>(self, f: F) -> TryForEach<Self, F>
fn try_for_each<F, E>(self, f: F) -> TryForEach<Self, F>
Executes a fallible closure for each item, short-circuiting on error.