[−][src]Trait futures_test_sink::fuse_last::IteratorExt
Extension trait for Iterator that allow use FuseLast
in chain-like manner.
Required methods
fn fuse_last(self) -> FuseLast<Self, Self::Item> where
Self: Sized,
Self::Item: Clone,
Self: Sized,
Self::Item: Clone,
Creates an iterator that will be fused on last element forever.
After an iterator returns None
, future calls may or may not yield Some(T)
again.
fuse_last()
adapts an iterator, ensuring that after a None
is given from self
iter, it will forever return last received element from inner iterator.
Examples
use futures_test_sink::fuse_last::IteratorExt; let iter = vec![1, 2].into_iter(); let mut fuse_last_iter = iter.fuse_last(); assert_eq!(Some(1), fuse_last_iter.next()); assert_eq!(Some(2), fuse_last_iter.next()); assert_eq!(Some(2), fuse_last_iter.next());
The only way to return None
is empty inner iterator.
use futures_test_sink::fuse_last::IteratorExt; use std::iter::empty; let mut fuse_last_iter = empty::<()>().fuse_last(); assert_eq!(None, fuse_last_iter.next()); assert_eq!(None, fuse_last_iter.next());