pub struct ZipSlices<T, U> {
// some fields omitted
}
An iterator which iterates two slices simultaneously.
ZipSlices
acts like a double-ended .zip()
iterator.
It was intended to be more efficient than .zip()
, and it was, then
rustc changed how it optimizes so it can not promise improved performance
at this time.
Note that elements past the end of the shortest of the two slices are ignored.
Iterator element type for ZipSlices<T, U>
is (T::Item, U::Item)
. For example,
for a ZipSlices<&'a [A], &'b mut [B]>
, the element type is (&'a A, &'b mut B)
.
Methods
Create a new ZipSlices
from slices a
and b
.
Act like a double-ended .zip()
iterator, but more efficiently.
Note that elements past the end of the shortest of the two slices are ignored.
fn from_slices(a: T, b: U) -> Self
Create a new ZipSlices
from slices a
and b
.
Act like a double-ended .zip()
iterator, but more efficiently.
Note that elements past the end of the shortest of the two slices are ignored.
Trait Implementations
type Item = (T::Item, U::Item)
1.0.0fn map<B, F>(self, f: F) -> Map<Self, F> where F: FnMut(Self::Item) -> B
1.0.0fn filter<P>(self, predicate: P) -> Filter<Self, P> where P: FnMut(&Self::Item) -> bool
1.0.0fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> where P: FnMut(&Self::Item) -> bool
1.0.0fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> where P: FnMut(&Self::Item) -> bool
1.0.0fn skip(self, n: usize) -> Skip<Self>
1.0.0fn take(self, n: usize) -> Take<Self>
1.0.0fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F> where F: FnMut(&mut St, Self::Item) -> Option<B>
1.0.0fn fuse(self) -> Fuse<Self>
1.0.0fn inspect<F>(self, f: F) -> Inspect<Self, F> where F: FnMut(&Self::Item) -> ()
1.0.0fn by_ref(&mut self) -> &mut Self
1.0.0fn fold<B, F>(self, init: B, f: F) -> B where F: FnMut(B, Self::Item) -> B
1.0.0fn all<F>(&mut self, f: F) -> bool where F: FnMut(Self::Item) -> bool
1.0.0fn any<F>(&mut self, f: F) -> bool where F: FnMut(Self::Item) -> bool
1.0.0fn find<P>(&mut self, predicate: P) -> Option<Self::Item> where P: FnMut(&Self::Item) -> bool
1.0.0fn max(self) -> Option<Self::Item> where Self::Item: Ord
1.0.0fn min(self) -> Option<Self::Item> where Self::Item: Ord
fn max_by<B, F>(self, f: F) -> Option<Self::Item> where F: FnMut(&Self::Item) -> B, B: Ord
1.6.0fn max_by_key<B, F>(self, f: F) -> Option<Self::Item> where B: Ord, F: FnMut(&Self::Item) -> B
fn min_by<B, F>(self, f: F) -> Option<Self::Item> where F: FnMut(&Self::Item) -> B, B: Ord
1.6.0fn min_by_key<B, F>(self, f: F) -> Option<Self::Item> where F: FnMut(&Self::Item) -> B, B: Ord
1.0.0fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB) where Self: Iterator<Item=(A, B)>, FromB: Default + Extend<B>, FromA: Default + Extend<A>
1.0.0fn cloned<'a, T>(self) -> Cloned<Self> where Self: Iterator<Item=&'a T>, T: 'a + Clone
1.0.0fn cycle(self) -> Cycle<Self> where Self: Clone
fn sum<S>(self) -> S where S: Add<Self::Item, Output=S> + Zero
fn product<P>(self) -> P where P: Mul<Self::Item, Output=P> + One
type Item = (T::Item, U::Item)
Derived Implementations