pub struct FromStreamDirect<S, F> { /* private fields */ }
Expand description
An OrderedStream
wrapper around a Stream
.
This does not use any future or past knowledge of elements, and so is suitable if the
stream rarely or never blocks. Prefer using FromStream
if you plan to filter or join
this stream and want other streams to be able to make progress while this one blocks.
Implementations§
source§impl<S, F> FromStreamDirect<S, F>
impl<S, F> FromStreamDirect<S, F>
sourcepub fn new<Ordering, Data>(stream: S, split_item: F) -> Self
pub fn new<Ordering, Data>(stream: S, split_item: F) -> Self
Create a new OrderedStream
by applying a split_item
closure to each element
produced by the original stream.
sourcepub fn with_ordering<Ordering>(
stream: S,
get_ordering: F,
) -> FromStreamDirect<S, impl FnMut(S::Item) -> (Ordering, S::Item)>
pub fn with_ordering<Ordering>( stream: S, get_ordering: F, ) -> FromStreamDirect<S, impl FnMut(S::Item) -> (Ordering, S::Item)>
Helper function to simplify the creation of a stream when you have a get_ordering function.
Trait Implementations§
source§impl<S, F, Ordering, Data> FusedOrderedStream for FromStreamDirect<S, F>
impl<S, F, Ordering, Data> FusedOrderedStream for FromStreamDirect<S, F>
source§fn is_terminated(&self) -> bool
fn is_terminated(&self) -> bool
Returns
true
if the stream should no longer be polled.source§impl<S, F, Ordering, Data> OrderedStream for FromStreamDirect<S, F>
impl<S, F, Ordering, Data> OrderedStream for FromStreamDirect<S, F>
source§fn poll_next_before(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
_: Option<&Self::Ordering>,
) -> Poll<PollResult<Self::Ordering, Self::Data>>
fn poll_next_before( self: Pin<&mut Self>, cx: &mut Context<'_>, _: Option<&Self::Ordering>, ) -> Poll<PollResult<Self::Ordering, Self::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 moresource§fn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
Returns the bounds on the remaining length of the stream.
source§fn 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> Unpin for FromStreamDirect<S, F>where
PinnedFieldsOf<__Origin<'__pin, S, F>>: Unpin,
Auto Trait Implementations§
impl<S, F> Freeze for FromStreamDirect<S, F>
impl<S, F> RefUnwindSafe for FromStreamDirect<S, F>where
S: RefUnwindSafe,
F: RefUnwindSafe,
impl<S, F> Send for FromStreamDirect<S, F>
impl<S, F> Sync for FromStreamDirect<S, F>
impl<S, F> UnwindSafe for FromStreamDirect<S, F>where
S: UnwindSafe,
F: UnwindSafe,
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> OrderedStreamExt for Twhere
T: OrderedStream + ?Sized,
impl<T> OrderedStreamExt for Twhere
T: OrderedStream + ?Sized,
source§fn map_item<F, R>(self, f: F) -> MapItem<Self, F>
fn map_item<F, R>(self, f: F) -> MapItem<Self, F>
Apply a closure to the items that has access to the ordering data.
source§fn map_ordering<NewOrdering, NewData, MapInto, MapFrom>(
self,
map_into: MapInto,
map_from: MapFrom,
) -> MapOrdering<Self, MapInto, MapFrom>where
Self: Sized,
MapInto: FnMut(Self::Ordering, Self::Data) -> (NewOrdering, NewData),
MapFrom: FnMut(&NewOrdering) -> Option<Self::Ordering>,
NewOrdering: Ord,
fn map_ordering<NewOrdering, NewData, MapInto, MapFrom>(
self,
map_into: MapInto,
map_from: MapFrom,
) -> MapOrdering<Self, MapInto, MapFrom>where
Self: Sized,
MapInto: FnMut(Self::Ordering, Self::Data) -> (NewOrdering, NewData),
MapFrom: FnMut(&NewOrdering) -> Option<Self::Ordering>,
NewOrdering: Ord,
Apply a closure to the items that can change the type of the ordering value. Read more
fn filter<F>(self, filter: F) -> Filter<Self, F>
fn filter_map<F, R>(self, filter: F) -> FilterMap<Self, F>
source§fn into_stream(self) -> IntoStream<Self>where
Self: Sized,
fn into_stream(self) -> IntoStream<Self>where
Self: Sized,
Convert this into a
Stream
, discarding the ordering information.source§fn into_tuple_stream(self) -> IntoTupleStream<Self>where
Self: Sized,
fn into_tuple_stream(self) -> IntoTupleStream<Self>where
Self: Sized,
Convert this into a
Stream
, keeping the ordering objects.source§fn into_ordering(self) -> IntoOrdering<Self>where
Self: Sized,
fn into_ordering(self) -> IntoOrdering<Self>where
Self: Sized,
Convert this into a
Stream
, keeping only the ordering objects.source§fn next_before<'a>(
&'a mut self,
before: Option<&'a Self::Ordering>,
) -> NextBefore<'a, Self> ⓘwhere
Self: Unpin,
fn next_before<'a>(
&'a mut self,
before: Option<&'a Self::Ordering>,
) -> NextBefore<'a, Self> ⓘwhere
Self: Unpin,
Return a
PollResult
corresponding to the next item in the stream.