Struct ordered_stream::FromStream
source · [−]pub struct FromStream<S, F, Ordering> { /* private fields */ }
Expand description
An OrderedStream
wrapper around a Stream
.
This caches the last-used ordering point returned by the stream and uses it to produce NoneBefore results. This makes it suitable for using to adapt streams that are filtered or mapped before joining. It still relies on the original stream producing a later-ordered element to allow other streams to progress, however.
Implementations
sourceimpl<S, F, Ordering> FromStream<S, F, Ordering> where
S: Stream,
Ordering: Ord + Clone,
impl<S, F, Ordering> FromStream<S, F, Ordering> where
S: Stream,
Ordering: Ord + Clone,
sourcepub fn new<Data>(stream: S, split_item: F) -> Self where
F: FnMut(S::Item) -> (Ordering, Data),
pub fn new<Data>(stream: S, split_item: F) -> Self where
F: FnMut(S::Item) -> (Ordering, Data),
Create a new OrderedStream
by applying a split_item
closure to each element
produced by the original stream.
sourcepub fn with_ordering(
stream: S,
get_ordering: F
) -> FromStream<S, impl FnMut(S::Item) -> (Ordering, S::Item), Ordering> where
F: FnMut(&S::Item) -> Ordering,
pub fn with_ordering(
stream: S,
get_ordering: F
) -> FromStream<S, impl FnMut(S::Item) -> (Ordering, S::Item), Ordering> where
F: FnMut(&S::Item) -> Ordering,
Helper function to simplify the creation of a stream when you have a get_ordering function.
Trait Implementations
sourceimpl<S, F, Ordering, Data> FusedOrderedStream for FromStream<S, F, Ordering> where
S: FusedStream,
F: FnMut(S::Item) -> (Ordering, Data),
Ordering: Ord + Clone,
impl<S, F, Ordering, Data> FusedOrderedStream for FromStream<S, F, Ordering> where
S: FusedStream,
F: FnMut(S::Item) -> (Ordering, Data),
Ordering: Ord + Clone,
sourcefn is_terminated(&self) -> bool
fn is_terminated(&self) -> bool
Returns true
if the stream should no longer be polled.
sourceimpl<S, F, Ordering, Data> OrderedStream for FromStream<S, F, Ordering> where
S: Stream,
F: FnMut(S::Item) -> (Ordering, Data),
Ordering: Ord + Clone,
impl<S, F, Ordering, Data> OrderedStream for FromStream<S, F, Ordering> where
S: Stream,
F: FnMut(S::Item) -> (Ordering, Data),
Ordering: Ord + Clone,
sourcefn poll_next_before(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
before: Option<&Self::Ordering>
) -> Poll<PollResult<Ordering, Data>>
fn poll_next_before(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
before: Option<&Self::Ordering>
) -> Poll<PollResult<Ordering, Data>>
Attempt to pull out the next value of this stream, registering the current task for wakeup
if needed, and returning NoneBefore
if it is known that the stream will not produce any
more values ordered before the given point. Read more
sourcefn position_hint(&self) -> Option<MaybeBorrowed<'_, Self::Ordering>>
fn position_hint(&self) -> Option<MaybeBorrowed<'_, Self::Ordering>>
The minimum value of the ordering for any future items. Read more
impl<'__pin, S, F, Ordering> Unpin for FromStream<S, F, Ordering> where
__Origin<'__pin, S, F, Ordering>: Unpin,
Auto Trait Implementations
impl<S, F, Ordering> RefUnwindSafe for FromStream<S, F, Ordering> where
F: RefUnwindSafe,
Ordering: RefUnwindSafe,
S: RefUnwindSafe,
impl<S, F, Ordering> Send for FromStream<S, F, Ordering> where
F: Send,
Ordering: Send,
S: Send,
impl<S, F, Ordering> Sync for FromStream<S, F, Ordering> where
F: Sync,
Ordering: Sync,
S: Sync,
impl<S, F, Ordering> UnwindSafe for FromStream<S, F, Ordering> where
F: UnwindSafe,
Ordering: UnwindSafe,
S: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more