Skip to main content

FusedPull

Trait FusedPull 

Source
pub trait FusedPull: Pull { }
Expand description

A marker trait for pulls that are “fused”.

A fused pull guarantees that once it returns PullStep::Ended, all subsequent calls to Pull::pull will also return PullStep::Ended. This property allows downstream operators like Pull::chain to avoid tracking whether the upstream has ended.

Implementors should ensure this invariant is upheld. The Pull::fuse adapter can be used to make any pull fused.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<P> FusedPull for &mut P
where P: FusedPull + Unpin + ?Sized,

Implementors§

Source§

impl<A, B> FusedPull for Chain<A, B>
where A: FusedPull<CanEnd = Yes>, B: FusedPull<Item = A::Item, Meta = A::Meta>,

Source§

impl<A, B> FusedPull for ZipLongest<A, B>
where A: FusedPull, B: FusedPull<Meta = A::Meta>,

Source§

impl<I> FusedPull for Iter<I>
where I: FusedIterator,

Source§

impl<Item> FusedPull for Empty<Item>

Source§

impl<Item> FusedPull for Once<Item>

Source§

impl<Item> FusedPull for Pending<Item>

Source§

impl<Item> FusedPull for Repeat<Item>
where Item: Clone,

Source§

impl<ItemPull, SinglePull, SingleState> FusedPull for CrossSingleton<ItemPull, SinglePull, SingleState>
where ItemPull: FusedPull, SinglePull: FusedPull, SinglePull::Item: Clone, SingleState: BorrowMut<Option<SinglePull::Item>>,

Source§

impl<L, R> FusedPull for Either<L, R>
where L: FusedPull, R: FusedPull<Item = L::Item, Meta = L::Meta>,

Source§

impl<Prev> FusedPull for Enumerate<Prev>
where Prev: FusedPull,

Source§

impl<Prev> FusedPull for Flatten<Prev, <Prev::Item as IntoIterator>::IntoIter, Prev::Meta>
where Prev: FusedPull, Prev::Item: IntoIterator,

Source§

impl<Prev> FusedPull for FlattenStream<Prev, Prev::Item, Prev::Meta>
where Prev: FusedPull, Prev::Item: Stream,

Source§

impl<Prev> FusedPull for Fuse<Prev>
where Prev: Pull,

Source§

impl<Prev> FusedPull for Skip<Prev>
where Prev: FusedPull,

Source§

impl<Prev> FusedPull for Take<Prev>
where Prev: Pull,

Source§

impl<Prev, Func> FusedPull for Filter<Prev, Func>
where Prev: FusedPull, Func: FnMut(&Prev::Item) -> bool,

Source§

impl<Prev, Func> FusedPull for Inspect<Prev, Func>
where Prev: FusedPull, Func: FnMut(&Prev::Item),

Source§

impl<Prev, Func> FusedPull for SkipWhile<Prev, Func>
where Prev: FusedPull, Func: FnMut(&Prev::Item) -> bool,

Source§

impl<Prev, Func, IntoIter> FusedPull for FlatMap<Prev, Func, IntoIter::IntoIter, Prev::Meta>
where Prev: FusedPull, Func: FnMut(Prev::Item) -> IntoIter, IntoIter: IntoIterator,

Source§

impl<Prev, Func, Item> FusedPull for FilterMap<Prev, Func>
where Prev: FusedPull, Func: FnMut(Prev::Item) -> Option<Item>,

Source§

impl<Prev, Func, Item> FusedPull for Map<Prev, Func>
where Prev: FusedPull, Func: FnMut(Prev::Item) -> Item,

Source§

impl<St> FusedPull for Stream<St>
where St: FusedStream,