pub struct ChunksExact<'a, T>where
T: 'a,{ /* private fields */ }Expand description
An iterator over a slice in (non-overlapping) chunks (chunk_size elements at a
time), starting at the beginning of the slice.
When the slice len is not evenly divided by the chunk size, the last
up to chunk_size-1 elements will be omitted but can be retrieved from
the remainder function from the iterator.
This struct is created by the chunks_exact method on slices.
ยงExample
Implementationsยง
Sourceยงimpl<'a, T> ChunksExact<'a, T>
impl<'a, T> ChunksExact<'a, T>
1.31.0 ยท Sourcepub fn remainder(&self) -> &'a [T]
pub fn remainder(&self) -> &'a [T]
Returns the remainder of the original slice that is not going to be
returned by the iterator. The returned slice has at most chunk_size-1
elements.
ยงExample
let slice = ['l', 'o', 'r', 'e', 'm'];
let mut iter = slice.chunks_exact(2);
assert_eq!(iter.remainder(), &['m'][..]);
assert_eq!(iter.next(), Some(&['l', 'o'][..]));
assert_eq!(iter.remainder(), &['m'][..]);
assert_eq!(iter.next(), Some(&['r', 'e'][..]));
assert_eq!(iter.remainder(), &['m'][..]);
assert_eq!(iter.next(), None);
assert_eq!(iter.remainder(), &['m'][..]);Trait Implementationsยง
1.31.0 ยท Sourceยงimpl<T> Clone for ChunksExact<'_, T>
impl<T> Clone for ChunksExact<'_, T>
1.31.0 ยท Sourceยงimpl<'a, T> Debug for ChunksExact<'a, T>where
T: Debug + 'a,
impl<'a, T> Debug for ChunksExact<'a, T>where
T: Debug + 'a,
1.31.0 ยท Sourceยงimpl<'a, T> DoubleEndedIterator for ChunksExact<'a, T>
impl<'a, T> DoubleEndedIterator for ChunksExact<'a, T>
Sourceยงfn next_back(&mut self) -> Option<&'a [T]>
fn next_back(&mut self) -> Option<&'a [T]>
Removes and returns an element from the end of the iterator. Read more
Sourceยงfn nth_back(
&mut self,
n: usize,
) -> Option<<ChunksExact<'a, T> as Iterator>::Item>
fn nth_back( &mut self, n: usize, ) -> Option<<ChunksExact<'a, T> as Iterator>::Item>
Returns the
nth element from the end of the iterator. Read moreSourceยงfn next_chunk_back<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
fn next_chunk_back<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
๐ฌThis is a nightly-only experimental API. (
iter_next_chunk #98326)Advances from the back of the iterator and returns an array containing the next
N values in sequence. Read moreSourceยงfn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
๐ฌThis is a nightly-only experimental API. (
iter_advance_by #77404)Advances the iterator from the back by
n elements. Read more1.27.0 (const: unstable) ยท Sourceยงfn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
This is the reverse version of
Iterator::try_fold(): it takes
elements starting from the back of the iterator. Read more1.31.0 ยท Sourceยงimpl<T> ExactSizeIterator for ChunksExact<'_, T>
impl<T> ExactSizeIterator for ChunksExact<'_, T>
impl<T> FusedIterator for ChunksExact<'_, T>
1.31.0 ยท Sourceยงimpl<'a, T> Iterator for ChunksExact<'a, T>
impl<'a, T> Iterator for ChunksExact<'a, T>
Sourceยงfn next(&mut self) -> Option<&'a [T]>
fn next(&mut self) -> Option<&'a [T]>
Advances the iterator and returns the next value. Read more
Sourceยงfn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
Returns the bounds on the remaining length of the iterator. Read more
Sourceยงfn count(self) -> usize
fn count(self) -> usize
Consumes the iterator, counting the number of iterations and returning it. Read more
Sourceยงfn nth(&mut self, n: usize) -> Option<<ChunksExact<'a, T> as Iterator>::Item>
fn nth(&mut self, n: usize) -> Option<<ChunksExact<'a, T> as Iterator>::Item>
Returns the
nth element of the iterator. Read moreSourceยงfn last(self) -> Option<<ChunksExact<'a, T> as Iterator>::Item>
fn last(self) -> Option<<ChunksExact<'a, T> as Iterator>::Item>
Consumes the iterator, returning the last element. Read more
Sourceยงfn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
fn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
๐ฌThis is a nightly-only experimental API. (
iter_next_chunk #98326)Advances the iterator and returns an array containing the next
N values. Read moreSourceยงfn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
๐ฌThis is a nightly-only experimental API. (
iter_advance_by #77404)Advances the iterator by
n elements. Read more1.28.0 (const: unstable) ยท Sourceยงfn step_by(self, step: usize) -> StepBy<Self> โwhere
Self: Sized,
fn step_by(self, step: usize) -> StepBy<Self> โwhere
Self: Sized,
Creates an iterator starting at the same point, but stepping by
the given amount at each iteration. Read more
1.0.0 (const: unstable) ยท Sourceยงfn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> โ
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> โ
Takes two iterators and creates a new iterator over both in sequence. Read more
1.0.0 (const: unstable) ยท Sourceยงfn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter> โwhere
Self: Sized,
U: IntoIterator,
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter> โwhere
Self: Sized,
U: IntoIterator,
โZips upโ two iterators into a single iterator of pairs. Read more
Sourceยงfn intersperse(self, separator: Self::Item) -> Intersperse<Self> โ
fn intersperse(self, separator: Self::Item) -> Intersperse<Self> โ
๐ฌThis is a nightly-only experimental API. (
iter_intersperse #79524)Creates a new iterator which places a copy of
separator between items
of the original iterator. Read moreSourceยงfn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> โ
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> โ
๐ฌThis is a nightly-only experimental API. (
iter_intersperse #79524)Creates a new iterator which places an item generated by
separator
between items of the original iterator. Read more1.0.0 (const: unstable) ยท Sourceยงfn map<B, F>(self, f: F) -> Map<Self, F> โ
fn map<B, F>(self, f: F) -> Map<Self, F> โ
Takes a closure and creates an iterator which calls that closure on each
element. Read more
1.21.0 (const: unstable) ยท Sourceยงfn for_each<F>(self, f: F)
fn for_each<F>(self, f: F)
Calls a closure on each element of an iterator. Read more
1.0.0 (const: unstable) ยท Sourceยงfn filter<P>(self, predicate: P) -> Filter<Self, P> โ
fn filter<P>(self, predicate: P) -> Filter<Self, P> โ
Creates an iterator which uses a closure to determine if an element
should be yielded. Read more
1.0.0 (const: unstable) ยท Sourceยงfn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> โ
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> โ
Creates an iterator that both filters and maps. Read more
1.0.0 (const: unstable) ยท Sourceยงfn enumerate(self) -> Enumerate<Self> โwhere
Self: Sized,
fn enumerate(self) -> Enumerate<Self> โwhere
Self: Sized,
Creates an iterator which gives the current iteration count as well as
the next value. Read more
1.0.0 (const: unstable) ยท Sourceยงfn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> โ
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> โ
Creates an iterator that yields elements based on a predicate. Read more
1.57.0 (const: unstable) ยท Sourceยงfn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> โ
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> โ
Creates an iterator that both yields elements based on a predicate and maps. Read more
1.0.0 (const: unstable) ยท Sourceยงfn skip(self, n: usize) -> Skip<Self> โwhere
Self: Sized,
fn skip(self, n: usize) -> Skip<Self> โwhere
Self: Sized,
Creates an iterator that skips the first
n elements. Read more1.0.0 (const: unstable) ยท Sourceยงfn take(self, n: usize) -> Take<Self> โwhere
Self: Sized,
fn take(self, n: usize) -> Take<Self> โwhere
Self: Sized,
Creates an iterator that yields the first
n elements, or fewer
if the underlying iterator ends sooner. Read more1.0.0 (const: unstable) ยท Sourceยงfn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F> โ
fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F> โ
1.0.0 (const: unstable) ยท Sourceยงfn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> โ
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> โ
Creates an iterator that works like map, but flattens nested structure. Read more
1.29.0 (const: unstable) ยท Sourceยงfn flatten(self) -> Flatten<Self> โ
fn flatten(self) -> Flatten<Self> โ
Creates an iterator that flattens nested structure. Read more
Sourceยงfn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N> โ
fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N> โ
๐ฌThis is a nightly-only experimental API. (
iter_map_windows #87155)Calls the given function
f for each contiguous window of size N over
self and returns an iterator over the outputs of f. Like slice::windows(),
the windows during mapping overlap as well. Read more