pub struct IntoIter<T, const N: usize> { /* private fields */ }Expand description
A by-value array iterator.
Implementations
impl<T, const N: usize> IntoIter<T, N>
source
impl<T, const N: usize> IntoIter<T, N>
sourcepub fn new(array: [T; N]) -> Self
source 👎 Deprecated since 1.59.0: use IntoIterator::into_iter instead
pub fn new(array: [T; N]) -> Self
sourceuse IntoIterator::into_iter instead
Creates a new iterator over the given array.
pub unsafe fn new_unchecked(
buffer: [MaybeUninit<T>; N],
initialized: Range<usize>
) -> Self
const: unstable · source
pub unsafe fn new_unchecked(
buffer: [MaybeUninit<T>; N],
initialized: Range<usize>
) -> Self
const: unstable · sourceCreates an iterator over the elements in a partially-initialized buffer.
If you have a fully-initialized array, then use IntoIterator.
But this is useful for returning partial results from unsafe code.
Safety
- The
buffer[initialized]elements must all be initialized. - The range must be canonical, with
initialized.start <= initialized.end. - The range must be in-bounds for the buffer, with
initialized.end <= N. (Like how indexing[0][100..100]fails despite the range being empty.)
It’s sound to have more elements initialized than mentioned, though that will most likely result in them being leaked.
Examples
#![feature(array_into_iter_constructors)]
#![feature(maybe_uninit_array_assume_init)]
#![feature(maybe_uninit_uninit_array)]
use std::array::IntoIter;
use std::mem::MaybeUninit;
fn next_chunk<T: Copy, const N: usize>(
it: &mut impl Iterator<Item = T>,
) -> Result<[T; N], IntoIter<T, N>> {
let mut buffer = MaybeUninit::uninit_array();
let mut i = 0;
while i < N {
match it.next() {
Some(x) => {
buffer[i].write(x);
i += 1;
}
None => {
// SAFETY: We've initialized the first `i` items
unsafe {
return Err(IntoIter::new_unchecked(buffer, 0..i));
}
}
}
}
// SAFETY: We've initialized all N items
unsafe { Ok(MaybeUninit::array_assume_init(buffer)) }
}
let r: [_; 4] = next_chunk(&mut (10..16)).unwrap();
assert_eq!(r, [10, 11, 12, 13]);
let r: IntoIter<_, 40> = next_chunk(&mut (10..16)).unwrap_err();
assert_eq!(r.collect::<Vec<_>>(), vec![10, 11, 12, 13, 14, 15]);Runpub fn empty() -> Self
const: unstable · source
pub fn empty() -> Self
const: unstable · sourceCreates an iterator over T which returns no elements.
If you just need an empty iterator, then use
iter::empty() instead.
And if you need an empty array, use [].
But this is useful when you need an array::IntoIter<T, N> specifically.
Examples
#![feature(array_into_iter_constructors)]
use std::array::IntoIter;
let empty = IntoIter::<i32, 3>::empty();
assert_eq!(empty.len(), 0);
assert_eq!(empty.as_slice(), &[]);
let empty = IntoIter::<std::convert::Infallible, 200>::empty();
assert_eq!(empty.len(), 0);Run[1, 2].into_iter() and [].into_iter() have different types
#![feature(array_into_iter_constructors)]
use std::array::IntoIter;
pub fn get_bytes(b: bool) -> IntoIter<i8, 4> {
if b {
[1, 2, 3, 4].into_iter()
} else {
[].into_iter() // error[E0308]: mismatched types
}
}But using this method you can get an empty iterator of appropriate size:
#![feature(array_into_iter_constructors)]
use std::array::IntoIter;
pub fn get_bytes(b: bool) -> IntoIter<i8, 4> {
if b {
[1, 2, 3, 4].into_iter()
} else {
IntoIter::empty()
}
}
assert_eq!(get_bytes(true).collect::<Vec<_>>(), vec![1, 2, 3, 4]);
assert_eq!(get_bytes(false).collect::<Vec<_>>(), vec![]);Runpub fn as_slice(&self) -> &[T]
source
pub fn as_slice(&self) -> &[T]
sourceReturns an immutable slice of all elements that have not been yielded yet.
pub fn as_mut_slice(&mut self) -> &mut [T]
source
pub fn as_mut_slice(&mut self) -> &mut [T]
sourceReturns a mutable slice of all elements that have not been yielded yet.
Trait Implementations
impl<T, const N: usize> DoubleEndedIterator for IntoIter<T, N>
1.40.0 · source
impl<T, const N: usize> DoubleEndedIterator for IntoIter<T, N>
1.40.0 · sourcefn next_back(&mut self) -> Option<Self::Item>
source
fn next_back(&mut self) -> Option<Self::Item>
sourceRemoves and returns an element from the end of the iterator. Read more
fn rfold<Acc, Fold>(self, init: Acc, rfold: Fold) -> Acc where
Fold: FnMut(Acc, Self::Item) -> Acc,
source
fn rfold<Acc, Fold>(self, init: Acc, rfold: Fold) -> Acc where
Fold: FnMut(Acc, Self::Item) -> Acc,
sourceAn iterator method that reduces the iterator’s elements to a single, final value, starting from the back. Read more
fn advance_back_by(&mut self, n: usize) -> Result<(), usize>
source
fn advance_back_by(&mut self, n: usize) -> Result<(), usize>
sourceAdvances the iterator from the back by n elements. Read more
fn nth_back(&mut self, n: usize) -> Option<Self::Item>
1.37.0 · source
fn nth_back(&mut self, n: usize) -> Option<Self::Item>
1.37.0 · sourceReturns the nth element from the end of the iterator. Read more
impl<T, const N: usize> ExactSizeIterator for IntoIter<T, N>
1.40.0 · source
impl<T, const N: usize> ExactSizeIterator for IntoIter<T, N>
1.40.0 · sourceimpl<T, const N: usize> Iterator for IntoIter<T, N>
1.40.0 · source
impl<T, const N: usize> Iterator for IntoIter<T, N>
1.40.0 · sourcetype Item = T
type Item = T
The type of the elements being iterated over.
fn next(&mut self) -> Option<Self::Item>
source
fn next(&mut self) -> Option<Self::Item>
sourceAdvances the iterator and returns the next value. Read more
fn size_hint(&self) -> (usize, Option<usize>)
source
fn size_hint(&self) -> (usize, Option<usize>)
sourceReturns the bounds on the remaining length of the iterator. Read more
fn fold<Acc, Fold>(self, init: Acc, fold: Fold) -> Acc where
Fold: FnMut(Acc, Self::Item) -> Acc,
source
fn fold<Acc, Fold>(self, init: Acc, fold: Fold) -> Acc where
Fold: FnMut(Acc, Self::Item) -> Acc,
sourceFolds every element into an accumulator by applying an operation, returning the final result. Read more
fn count(self) -> usize
source
fn count(self) -> usize
sourceConsumes the iterator, counting the number of iterations and returning it. Read more
fn last(self) -> Option<Self::Item>
source
fn last(self) -> Option<Self::Item>
sourceConsumes the iterator, returning the last element. Read more
fn advance_by(&mut self, n: usize) -> Result<(), usize>
source
fn advance_by(&mut self, n: usize) -> Result<(), usize>
sourceAdvances the iterator by n elements. Read more
fn nth(&mut self, n: usize) -> Option<Self::Item>
1.0.0 · source
fn nth(&mut self, n: usize) -> Option<Self::Item>
1.0.0 · sourceReturns the nth element of the iterator. Read more
fn step_by(self, step: usize) -> StepBy<Self>ⓘNotable traits for StepBy<I>impl<I> Iterator for StepBy<I> where
I: Iterator, type Item = I::Item; where
Self: Sized,
1.28.0 · source
fn step_by(self, step: usize) -> StepBy<Self>ⓘNotable traits for StepBy<I>impl<I> Iterator for StepBy<I> where
I: Iterator, type Item = I::Item; where
Self: Sized,
1.28.0 · sourceI: Iterator, type Item = I::Item;
Creates an iterator starting at the same point, but stepping by the given amount at each iteration. Read more
fn chain<U>(self, other: U) -> Chain<Self, U::IntoIter>ⓘNotable traits for Chain<A, B>impl<A, B> Iterator for Chain<A, B> where
A: Iterator,
B: Iterator<Item = A::Item>, type Item = A::Item; where
Self: Sized,
U: IntoIterator<Item = Self::Item>,
1.0.0 · source
fn chain<U>(self, other: U) -> Chain<Self, U::IntoIter>ⓘNotable traits for Chain<A, B>impl<A, B> Iterator for Chain<A, B> where
A: Iterator,
B: Iterator<Item = A::Item>, type Item = A::Item; where
Self: Sized,
U: IntoIterator<Item = Self::Item>,
1.0.0 · sourceA: Iterator,
B: Iterator<Item = A::Item>, type Item = A::Item;
Takes two iterators and creates a new iterator over both in sequence. Read more
fn zip<U>(self, other: U) -> Zip<Self, U::IntoIter>ⓘNotable traits for Zip<A, B>impl<A, B> Iterator for Zip<A, B> where
A: Iterator,
B: Iterator, type Item = (A::Item, B::Item); where
Self: Sized,
U: IntoIterator,
1.0.0 · source
fn zip<U>(self, other: U) -> Zip<Self, U::IntoIter>ⓘNotable traits for Zip<A, B>impl<A, B> Iterator for Zip<A, B> where
A: Iterator,
B: Iterator, type Item = (A::Item, B::Item); where
Self: Sized,
U: IntoIterator,
1.0.0 · sourceA: Iterator,
B: Iterator, type Item = (A::Item, B::Item);
‘Zips up’ two iterators into a single iterator of pairs. Read more
fn intersperse(self, separator: Self::Item) -> Intersperse<Self>ⓘNotable traits for Intersperse<I>impl<I> Iterator for Intersperse<I> where
I: Iterator,
I::Item: Clone, type Item = I::Item; where
Self: Sized,
Self::Item: Clone,
source
fn intersperse(self, separator: Self::Item) -> Intersperse<Self>ⓘNotable traits for Intersperse<I>impl<I> Iterator for Intersperse<I> where
I: Iterator,
I::Item: Clone, type Item = I::Item; where
Self: Sized,
Self::Item: Clone,
sourceI: Iterator,
I::Item: Clone, type Item = I::Item;
Creates a new iterator which places a copy of separator between adjacent
items of the original iterator. Read more
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>ⓘNotable traits for IntersperseWith<I, G>impl<I, G> Iterator for IntersperseWith<I, G> where
I: Iterator,
G: FnMut() -> I::Item, type Item = I::Item; where
Self: Sized,
G: FnMut() -> Self::Item,
source
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>ⓘNotable traits for IntersperseWith<I, G>impl<I, G> Iterator for IntersperseWith<I, G> where
I: Iterator,
G: FnMut() -> I::Item, type Item = I::Item; where
Self: Sized,
G: FnMut() -> Self::Item,
sourceI: Iterator,
G: FnMut() -> I::Item, type Item = I::Item;
Creates a new iterator which places an item generated by separator
between adjacent items of the original iterator. Read more
fn map<B, F>(self, f: F) -> Map<Self, F>ⓘNotable traits for Map<I, F>impl<B, I: Iterator, F> Iterator for Map<I, F> where
F: FnMut(I::Item) -> B, type Item = B; where
Self: Sized,
F: FnMut(Self::Item) -> B,
1.0.0 · source
fn map<B, F>(self, f: F) -> Map<Self, F>ⓘNotable traits for Map<I, F>impl<B, I: Iterator, F> Iterator for Map<I, F> where
F: FnMut(I::Item) -> B, type Item = B; where
Self: Sized,
F: FnMut(Self::Item) -> B,
1.0.0 · sourceF: FnMut(I::Item) -> B, type Item = B;
Takes a closure and creates an iterator which calls that closure on each element. Read more
fn for_each<F>(self, f: F) where
Self: Sized,
F: FnMut(Self::Item),
1.21.0 · source
fn for_each<F>(self, f: F) where
Self: Sized,
F: FnMut(Self::Item),
1.21.0 · sourceCalls a closure on each element of an iterator. Read more
fn filter<P>(self, predicate: P) -> Filter<Self, P>ⓘNotable traits for Filter<I, P>impl<I: Iterator, P> Iterator for Filter<I, P> where
P: FnMut(&I::Item) -> bool, type Item = I::Item; where
Self: Sized,
P: FnMut(&Self::Item) -> bool,
1.0.0 · source
fn filter<P>(self, predicate: P) -> Filter<Self, P>ⓘNotable traits for Filter<I, P>impl<I: Iterator, P> Iterator for Filter<I, P> where
P: FnMut(&I::Item) -> bool, type Item = I::Item; where
Self: Sized,
P: FnMut(&Self::Item) -> bool,
1.0.0 · sourceP: FnMut(&I::Item) -> bool, type Item = I::Item;
Creates an iterator which uses a closure to determine if an element should be yielded. Read more
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>ⓘNotable traits for FilterMap<I, F>impl<B, I: Iterator, F> Iterator for FilterMap<I, F> where
F: FnMut(I::Item) -> Option<B>, type Item = B; where
Self: Sized,
F: FnMut(Self::Item) -> Option<B>,
1.0.0 · source
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>ⓘNotable traits for FilterMap<I, F>impl<B, I: Iterator, F> Iterator for FilterMap<I, F> where
F: FnMut(I::Item) -> Option<B>, type Item = B; where
Self: Sized,
F: FnMut(Self::Item) -> Option<B>,
1.0.0 · sourceF: FnMut(I::Item) -> Option<B>, type Item = B;
Creates an iterator that both filters and maps. Read more
fn enumerate(self) -> Enumerate<Self>ⓘNotable traits for Enumerate<I>impl<I> Iterator for Enumerate<I> where
I: Iterator, type Item = (usize, <I as Iterator>::Item); where
Self: Sized,
1.0.0 · source
fn enumerate(self) -> Enumerate<Self>ⓘNotable traits for Enumerate<I>impl<I> Iterator for Enumerate<I> where
I: Iterator, type Item = (usize, <I as Iterator>::Item); where
Self: Sized,
1.0.0 · sourceI: Iterator, type Item = (usize, <I as Iterator>::Item);
Creates an iterator which gives the current iteration count as well as the next value. Read more
fn peekable(self) -> Peekable<Self>ⓘNotable traits for Peekable<I>impl<I: Iterator> Iterator for Peekable<I> type Item = I::Item; where
Self: Sized,
1.0.0 · source
fn peekable(self) -> Peekable<Self>ⓘNotable traits for Peekable<I>impl<I: Iterator> Iterator for Peekable<I> type Item = I::Item; where
Self: Sized,
1.0.0 · sourcefn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>ⓘNotable traits for SkipWhile<I, P>impl<I: Iterator, P> Iterator for SkipWhile<I, P> where
P: FnMut(&I::Item) -> bool, type Item = I::Item; where
Self: Sized,
P: FnMut(&Self::Item) -> bool,
1.0.0 · source
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>ⓘNotable traits for SkipWhile<I, P>impl<I: Iterator, P> Iterator for SkipWhile<I, P> where
P: FnMut(&I::Item) -> bool, type Item = I::Item; where
Self: Sized,
P: FnMut(&Self::Item) -> bool,
1.0.0 · sourceP: FnMut(&I::Item) -> bool, type Item = I::Item;
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>ⓘNotable traits for TakeWhile<I, P>impl<I: Iterator, P> Iterator for TakeWhile<I, P> where
P: FnMut(&I::Item) -> bool, type Item = I::Item; where
Self: Sized,
P: FnMut(&Self::Item) -> bool,
1.0.0 · source
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>ⓘNotable traits for TakeWhile<I, P>impl<I: Iterator, P> Iterator for TakeWhile<I, P> where
P: FnMut(&I::Item) -> bool, type Item = I::Item; where
Self: Sized,
P: FnMut(&Self::Item) -> bool,
1.0.0 · sourceP: FnMut(&I::Item) -> bool, type Item = I::Item;
Creates an iterator that yields elements based on a predicate. Read more
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>ⓘNotable traits for MapWhile<I, P>impl<B, I: Iterator, P> Iterator for MapWhile<I, P> where
P: FnMut(I::Item) -> Option<B>, type Item = B; where
Self: Sized,
P: FnMut(Self::Item) -> Option<B>,
1.57.0 · source
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>ⓘNotable traits for MapWhile<I, P>impl<B, I: Iterator, P> Iterator for MapWhile<I, P> where
P: FnMut(I::Item) -> Option<B>, type Item = B; where
Self: Sized,
P: FnMut(Self::Item) -> Option<B>,
1.57.0 · sourceP: FnMut(I::Item) -> Option<B>, type Item = B;
Creates an iterator that both yields elements based on a predicate and maps. Read more
fn skip(self, n: usize) -> Skip<Self>ⓘNotable traits for Skip<I>impl<I> Iterator for Skip<I> where
I: Iterator, type Item = <I as Iterator>::Item; where
Self: Sized,
1.0.0 · source
fn skip(self, n: usize) -> Skip<Self>ⓘNotable traits for Skip<I>impl<I> Iterator for Skip<I> where
I: Iterator, type Item = <I as Iterator>::Item; where
Self: Sized,
1.0.0 · sourceI: Iterator, type Item = <I as Iterator>::Item;
Creates an iterator that skips the first n elements. Read more
fn take(self, n: usize) -> Take<Self>ⓘNotable traits for Take<I>impl<I> Iterator for Take<I> where
I: Iterator, type Item = <I as Iterator>::Item; where
Self: Sized,
1.0.0 · source
fn take(self, n: usize) -> Take<Self>ⓘNotable traits for Take<I>impl<I> Iterator for Take<I> where
I: Iterator, type Item = <I as Iterator>::Item; where
Self: Sized,
1.0.0 · sourceI: Iterator, type Item = <I as Iterator>::Item;
Creates an iterator that yields the first n elements, or fewer
if the underlying iterator ends sooner. Read more
fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>ⓘNotable traits for Scan<I, St, F>impl<B, I, St, F> Iterator for Scan<I, St, F> where
I: Iterator,
F: FnMut(&mut St, I::Item) -> Option<B>, type Item = B; where
Self: Sized,
F: FnMut(&mut St, Self::Item) -> Option<B>,
1.0.0 · source
fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>ⓘNotable traits for Scan<I, St, F>impl<B, I, St, F> Iterator for Scan<I, St, F> where
I: Iterator,
F: FnMut(&mut St, I::Item) -> Option<B>, type Item = B; where
Self: Sized,
F: FnMut(&mut St, Self::Item) -> Option<B>,
1.0.0 · sourceI: Iterator,
F: FnMut(&mut St, I::Item) -> Option<B>, type Item = B;
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>ⓘNotable traits for FlatMap<I, U, F>impl<I: Iterator, U: IntoIterator, F> Iterator for FlatMap<I, U, F> where
F: FnMut(I::Item) -> U, type Item = U::Item; where
Self: Sized,
U: IntoIterator,
F: FnMut(Self::Item) -> U,
1.0.0 · source
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>ⓘNotable traits for FlatMap<I, U, F>impl<I: Iterator, U: IntoIterator, F> Iterator for FlatMap<I, U, F> where
F: FnMut(I::Item) -> U, type Item = U::Item; where
Self: Sized,
U: IntoIterator,
F: FnMut(Self::Item) -> U,
1.0.0 · sourceF: FnMut(I::Item) -> U, type Item = U::Item;
Creates an iterator that works like map, but flattens nested structure. Read more
fn flatten(self) -> Flatten<Self>ⓘNotable traits for Flatten<I>impl<I, U> Iterator for Flatten<I> where
I: Iterator<Item: IntoIterator<IntoIter = U, Item = U::Item>>,
U: Iterator, type Item = U::Item; where
Self: Sized,
Self::Item: IntoIterator,
1.29.0 · source
fn flatten(self) -> Flatten<Self>ⓘNotable traits for Flatten<I>impl<I, U> Iterator for Flatten<I> where
I: Iterator<Item: IntoIterator<IntoIter = U, Item = U::Item>>,
U: Iterator, type Item = U::Item; where
Self: Sized,
Self::Item: IntoIterator,
1.29.0 · sourceI: Iterator<Item: IntoIterator<IntoIter = U, Item = U::Item>>,
U: Iterator, type Item = U::Item;
Creates an iterator that flattens nested structure. Read more
fn fuse(self) -> Fuse<Self>ⓘNotable traits for Fuse<I>impl<I> Iterator for Fuse<I> where
I: Iterator, type Item = <I as Iterator>::Item; where
Self: Sized,
1.0.0 · source
fn fuse(self) -> Fuse<Self>ⓘNotable traits for Fuse<I>impl<I> Iterator for Fuse<I> where
I: Iterator, type Item = <I as Iterator>::Item; where
Self: Sized,
1.0.0 · sourceI: Iterator, type Item = <I as Iterator>::Item;
fn inspect<F>(self, f: F) -> Inspect<Self, F>ⓘNotable traits for Inspect<I, F>impl<I: Iterator, F> Iterator for Inspect<I, F> where
F: FnMut(&I::Item), type Item = I::Item; where
Self: Sized,
F: FnMut(&Self::Item),
1.0.0 · source
fn inspect<F>(self, f: F) -> Inspect<Self, F>ⓘNotable traits for Inspect<I, F>impl<I: Iterator, F> Iterator for Inspect<I, F> where
F: FnMut(&I::Item), type Item = I::Item; where
Self: Sized,
F: FnMut(&Self::Item),
1.0.0 · sourceF: FnMut(&I::Item), type Item = I::Item;
Does something with each element of an iterator, passing the value on. Read more
fn by_ref(&mut self) -> &mut Self where
Self: Sized,
1.0.0 · source
fn by_ref(&mut self) -> &mut Self where
Self: Sized,
1.0.0 · sourceBorrows an iterator, rather than consuming it. Read more
fn collect<B: FromIterator<Self::Item>>(self) -> B where
Self: Sized,
1.0.0 · source
fn collect<B: FromIterator<Self::Item>>(self) -> B where
Self: Sized,
1.0.0 · sourceTransforms an iterator into a collection. Read more
fn try_collect<B>(
&mut self
) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType where
Self: Sized,
<Self as Iterator>::Item: Try,
<<Self as Iterator>::Item as Try>::Residual: Residual<B>,
B: FromIterator<<Self::Item as Try>::Output>,
source
fn try_collect<B>(
&mut self
) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType where
Self: Sized,
<Self as Iterator>::Item: Try,
<<Self as Iterator>::Item as Try>::Residual: Residual<B>,
B: FromIterator<<Self::Item as Try>::Output>,
sourceFallibly transforms an iterator into a collection, short circuiting if a failure is encountered. Read more
fn collect_into<E: Extend<Self::Item>>(self, collection: &mut E) -> &mut E where
Self: Sized,
source
fn collect_into<E: Extend<Self::Item>>(self, collection: &mut E) -> &mut E where
Self: Sized,
sourceCollects all the items from an iterator into a collection. Read more
fn partition<B, F>(self, f: F) -> (B, B) where
Self: Sized,
B: Default + Extend<Self::Item>,
F: FnMut(&Self::Item) -> bool,
1.0.0 · source
fn partition<B, F>(self, f: F) -> (B, B) where
Self: Sized,
B: Default + Extend<Self::Item>,
F: FnMut(&Self::Item) -> bool,
1.0.0 · sourceConsumes an iterator, creating two collections from it. Read more
fn partition_in_place<'a, T: 'a, P>(self, predicate: P) -> usize where
Self: Sized + DoubleEndedIterator<Item = &'a mut T>,
P: FnMut(&T) -> bool,
source
fn partition_in_place<'a, T: 'a, P>(self, predicate: P) -> usize where
Self: Sized + DoubleEndedIterator<Item = &'a mut T>,
P: FnMut(&T) -> bool,
sourceReorders the elements of this iterator in-place according to the given predicate,
such that all those that return true precede all those that return false.
Returns the number of true elements found. Read more
fn is_partitioned<P>(self, predicate: P) -> bool where
Self: Sized,
P: FnMut(Self::Item) -> bool,
source
fn is_partitioned<P>(self, predicate: P) -> bool where
Self: Sized,
P: FnMut(Self::Item) -> bool,
sourceChecks if the elements of this iterator are partitioned according to the given predicate,
such that all those that return true precede all those that return false. Read more
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R where
Self: Sized,
F: FnMut(B, Self::Item) -> R,
R: Try<Output = B>,
1.27.0 · source
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R where
Self: Sized,
F: FnMut(B, Self::Item) -> R,
R: Try<Output = B>,
1.27.0 · sourceAn iterator method that applies a function as long as it returns successfully, producing a single, final value. Read more
fn try_for_each<F, R>(&mut self, f: F) -> R where
Self: Sized,
F: FnMut(Self::Item) -> R,
R: Try<Output = ()>,
1.27.0 · source
fn try_for_each<F, R>(&mut self, f: F) -> R where
Self: Sized,
F: FnMut(Self::Item) -> R,
R: Try<Output = ()>,
1.27.0 · sourceAn iterator method that applies a fallible function to each item in the iterator, stopping at the first error and returning that error. Read more
fn reduce<F>(self, f: F) -> Option<Self::Item> where
Self: Sized,
F: FnMut(Self::Item, Self::Item) -> Self::Item,
source
fn reduce<F>(self, f: F) -> Option<Self::Item> where
Self: Sized,
F: FnMut(Self::Item, Self::Item) -> Self::Item,
sourceReduces the elements to a single one, by repeatedly applying a reducing operation. Read more
fn try_reduce<F, R>(
&mut self,
f: F
) -> <<R as Try>::Residual as Residual<Option<R::Output>>>::TryType where
Self: Sized,
F: FnMut(Self::Item, Self::Item) -> R,
R: Try<Output = Self::Item>,
R::Residual: Residual<Option<Self::Item>>,
source
fn try_reduce<F, R>(
&mut self,
f: F
) -> <<R as Try>::Residual as Residual<Option<R::Output>>>::TryType where
Self: Sized,
F: FnMut(Self::Item, Self::Item) -> R,
R: Try<Output = Self::Item>,
R::Residual: Residual<Option<Self::Item>>,
sourceReduces the elements to a single one by repeatedly applying a reducing operation. If the closure returns a failure, the failure is propagated back to the caller immediately. Read more
fn all<F>(&mut self, f: F) -> bool where
Self: Sized,
F: FnMut(Self::Item) -> bool,
1.0.0 · source
fn all<F>(&mut self, f: F) -> bool where
Self: Sized,
F: FnMut(Self::Item) -> bool,
1.0.0 · sourceTests if every element of the iterator matches a predicate. Read more
fn any<F>(&mut self, f: F) -> bool where
Self: Sized,
F: FnMut(Self::Item) -> bool,
1.0.0 · source
fn any<F>(&mut self, f: F) -> bool where
Self: Sized,
F: FnMut(Self::Item) -> bool,
1.0.0 · sourceTests if any element of the iterator matches a predicate. Read more
fn find<P>(&mut self, predicate: P) -> Option<Self::Item> where
Self: Sized,
P: FnMut(&Self::Item) -> bool,
1.0.0 · source
fn find<P>(&mut self, predicate: P) -> Option<Self::Item> where
Self: Sized,
P: FnMut(&Self::Item) -> bool,
1.0.0 · sourceSearches for an element of an iterator that satisfies a predicate. Read more
fn find_map<B, F>(&mut self, f: F) -> Option<B> where
Self: Sized,
F: FnMut(Self::Item) -> Option<B>,
1.30.0 · source
fn find_map<B, F>(&mut self, f: F) -> Option<B> where
Self: Sized,
F: FnMut(Self::Item) -> Option<B>,
1.30.0 · sourceApplies function to the elements of iterator and returns the first non-none result. Read more
fn try_find<F, R>(
&mut self,
f: F
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType where
Self: Sized,
F: FnMut(&Self::Item) -> R,
R: Try<Output = bool>,
R::Residual: Residual<Option<Self::Item>>,
source
fn try_find<F, R>(
&mut self,
f: F
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType where
Self: Sized,
F: FnMut(&Self::Item) -> R,
R: Try<Output = bool>,
R::Residual: Residual<Option<Self::Item>>,
sourceApplies function to the elements of iterator and returns the first true result or the first error. Read more
fn position<P>(&mut self, predicate: P) -> Option<usize> where
Self: Sized,
P: FnMut(Self::Item) -> bool,
1.0.0 · source
fn position<P>(&mut self, predicate: P) -> Option<usize> where
Self: Sized,
P: FnMut(Self::Item) -> bool,
1.0.0 · sourceSearches for an element in an iterator, returning its index. Read more
fn rposition<P>(&mut self, predicate: P) -> Option<usize> where
P: FnMut(Self::Item) -> bool,
Self: Sized + ExactSizeIterator + DoubleEndedIterator,
1.0.0 · source
fn rposition<P>(&mut self, predicate: P) -> Option<usize> where
P: FnMut(Self::Item) -> bool,
Self: Sized + ExactSizeIterator + DoubleEndedIterator,
1.0.0 · sourceSearches for an element in an iterator from the right, returning its index. Read more
fn max(self) -> Option<Self::Item> where
Self: Sized,
Self::Item: Ord,
1.0.0 · source
fn max(self) -> Option<Self::Item> where
Self: Sized,
Self::Item: Ord,
1.0.0 · sourceReturns the maximum element of an iterator. Read more
fn min(self) -> Option<Self::Item> where
Self: Sized,
Self::Item: Ord,
1.0.0 · source
fn min(self) -> Option<Self::Item> where
Self: Sized,
Self::Item: Ord,
1.0.0 · sourceReturns the minimum element of an iterator. Read more
fn max_by_key<B: Ord, F>(self, f: F) -> Option<Self::Item> where
Self: Sized,
F: FnMut(&Self::Item) -> B,
1.6.0 · source
fn max_by_key<B: Ord, F>(self, f: F) -> Option<Self::Item> where
Self: Sized,
F: FnMut(&Self::Item) -> B,
1.6.0 · sourceReturns the element that gives the maximum value from the specified function. Read more
fn max_by<F>(self, compare: F) -> Option<Self::Item> where
Self: Sized,
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
1.15.0 · source
fn max_by<F>(self, compare: F) -> Option<Self::Item> where
Self: Sized,
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
1.15.0 · sourceReturns the element that gives the maximum value with respect to the specified comparison function. Read more
fn min_by_key<B: Ord, F>(self, f: F) -> Option<Self::Item> where
Self: Sized,
F: FnMut(&Self::Item) -> B,
1.6.0 · source
fn min_by_key<B: Ord, F>(self, f: F) -> Option<Self::Item> where
Self: Sized,
F: FnMut(&Self::Item) -> B,
1.6.0 · sourceReturns the element that gives the minimum value from the specified function. Read more
fn min_by<F>(self, compare: F) -> Option<Self::Item> where
Self: Sized,
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
1.15.0 · source
fn min_by<F>(self, compare: F) -> Option<Self::Item> where
Self: Sized,
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
1.15.0 · sourceReturns the element that gives the minimum value with respect to the specified comparison function. Read more
fn rev(self) -> Rev<Self>ⓘNotable traits for Rev<I>impl<I> Iterator for Rev<I> where
I: DoubleEndedIterator, type Item = <I as Iterator>::Item; where
Self: Sized + DoubleEndedIterator,
1.0.0 · source
fn rev(self) -> Rev<Self>ⓘNotable traits for Rev<I>impl<I> Iterator for Rev<I> where
I: DoubleEndedIterator, type Item = <I as Iterator>::Item; where
Self: Sized + DoubleEndedIterator,
1.0.0 · sourceI: DoubleEndedIterator, type Item = <I as Iterator>::Item;
Reverses an iterator’s direction. Read more
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB) where
FromA: Default + Extend<A>,
FromB: Default + Extend<B>,
Self: Sized + Iterator<Item = (A, B)>,
1.0.0 · source
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB) where
FromA: Default + Extend<A>,
FromB: Default + Extend<B>,
Self: Sized + Iterator<Item = (A, B)>,
1.0.0 · sourceConverts an iterator of pairs into a pair of containers. Read more
fn copied<'a, T: 'a>(self) -> Copied<Self>ⓘNotable traits for Copied<I>impl<'a, I, T: 'a> Iterator for Copied<I> where
I: Iterator<Item = &'a T>,
T: Copy, type Item = T; where
Self: Sized + Iterator<Item = &'a T>,
T: Copy,
1.36.0 · source
fn copied<'a, T: 'a>(self) -> Copied<Self>ⓘNotable traits for Copied<I>impl<'a, I, T: 'a> Iterator for Copied<I> where
I: Iterator<Item = &'a T>,
T: Copy, type Item = T; where
Self: Sized + Iterator<Item = &'a T>,
T: Copy,
1.36.0 · sourceI: Iterator<Item = &'a T>,
T: Copy, type Item = T;
Creates an iterator which copies all of its elements. Read more
fn cloned<'a, T: 'a>(self) -> Cloned<Self>ⓘNotable traits for Cloned<I>impl<'a, I, T: 'a> Iterator for Cloned<I> where
I: Iterator<Item = &'a T>,
T: Clone, type Item = T; where
Self: Sized + Iterator<Item = &'a T>,
T: Clone,
1.0.0 · source
fn cloned<'a, T: 'a>(self) -> Cloned<Self>ⓘNotable traits for Cloned<I>impl<'a, I, T: 'a> Iterator for Cloned<I> where
I: Iterator<Item = &'a T>,
T: Clone, type Item = T; where
Self: Sized + Iterator<Item = &'a T>,
T: Clone,
1.0.0 · sourceI: Iterator<Item = &'a T>,
T: Clone, type Item = T;
fn cycle(self) -> Cycle<Self>ⓘNotable traits for Cycle<I>impl<I> Iterator for Cycle<I> where
I: Clone + Iterator, type Item = <I as Iterator>::Item; where
Self: Sized + Clone,
1.0.0 · source
fn cycle(self) -> Cycle<Self>ⓘNotable traits for Cycle<I>impl<I> Iterator for Cycle<I> where
I: Clone + Iterator, type Item = <I as Iterator>::Item; where
Self: Sized + Clone,
1.0.0 · sourceI: Clone + Iterator, type Item = <I as Iterator>::Item;
Repeats an iterator endlessly. Read more
fn sum<S>(self) -> S where
Self: Sized,
S: Sum<Self::Item>,
1.11.0 · source
fn sum<S>(self) -> S where
Self: Sized,
S: Sum<Self::Item>,
1.11.0 · sourceSums the elements of an iterator. Read more
fn product<P>(self) -> P where
Self: Sized,
P: Product<Self::Item>,
1.11.0 · source
fn product<P>(self) -> P where
Self: Sized,
P: Product<Self::Item>,
1.11.0 · sourceIterates over the entire iterator, multiplying all the elements Read more
fn cmp<I>(self, other: I) -> Ordering where
I: IntoIterator<Item = Self::Item>,
Self::Item: Ord,
Self: Sized,
1.5.0 · source
fn cmp<I>(self, other: I) -> Ordering where
I: IntoIterator<Item = Self::Item>,
Self::Item: Ord,
Self: Sized,
1.5.0 · sourceLexicographically compares the elements of this Iterator with those
of another. Read more
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, I::Item) -> Ordering,
source
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, I::Item) -> Ordering,
sourceLexicographically compares the elements of this Iterator with those
of another with respect to the specified comparison function. Read more
fn partial_cmp<I>(self, other: I) -> Option<Ordering> where
I: IntoIterator,
Self::Item: PartialOrd<I::Item>,
Self: Sized,
1.5.0 · source
fn partial_cmp<I>(self, other: I) -> Option<Ordering> where
I: IntoIterator,
Self::Item: PartialOrd<I::Item>,
Self: Sized,
1.5.0 · sourceLexicographically compares the elements of this Iterator with those
of another. Read more
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering> where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, I::Item) -> Option<Ordering>,
source
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering> where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, I::Item) -> Option<Ordering>,
sourceLexicographically compares the elements of this Iterator with those
of another with respect to the specified comparison function. Read more
fn eq<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialEq<I::Item>,
Self: Sized,
1.5.0 · source
fn eq<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialEq<I::Item>,
Self: Sized,
1.5.0 · sourcefn eq_by<I, F>(self, other: I, eq: F) -> bool where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, I::Item) -> bool,
source
fn eq_by<I, F>(self, other: I, eq: F) -> bool where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, I::Item) -> bool,
sourcefn ne<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialEq<I::Item>,
Self: Sized,
1.5.0 · source
fn ne<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialEq<I::Item>,
Self: Sized,
1.5.0 · sourcefn lt<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<I::Item>,
Self: Sized,
1.5.0 · source
fn lt<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<I::Item>,
Self: Sized,
1.5.0 · sourceDetermines if the elements of this Iterator are lexicographically
less than those of another. Read more
fn le<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<I::Item>,
Self: Sized,
1.5.0 · source
fn le<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<I::Item>,
Self: Sized,
1.5.0 · sourceDetermines if the elements of this Iterator are lexicographically
less or equal to those of another. Read more
fn gt<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<I::Item>,
Self: Sized,
1.5.0 · source
fn gt<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<I::Item>,
Self: Sized,
1.5.0 · sourceDetermines if the elements of this Iterator are lexicographically
greater than those of another. Read more
fn ge<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<I::Item>,
Self: Sized,
1.5.0 · source
fn ge<I>(self, other: I) -> bool where
I: IntoIterator,
Self::Item: PartialOrd<I::Item>,
Self: Sized,
1.5.0 · sourceDetermines if the elements of this Iterator are lexicographically
greater than or equal to those of another. Read more
fn is_sorted(self) -> bool where
Self: Sized,
Self::Item: PartialOrd,
source
fn is_sorted(self) -> bool where
Self: Sized,
Self::Item: PartialOrd,
sourceChecks if the elements of this iterator are sorted. Read more
fn is_sorted_by<F>(self, compare: F) -> bool where
Self: Sized,
F: FnMut(&Self::Item, &Self::Item) -> Option<Ordering>,
source
fn is_sorted_by<F>(self, compare: F) -> bool where
Self: Sized,
F: FnMut(&Self::Item, &Self::Item) -> Option<Ordering>,
sourceChecks if the elements of this iterator are sorted using the given comparator function. Read more
fn is_sorted_by_key<F, K>(self, f: F) -> bool where
Self: Sized,
F: FnMut(Self::Item) -> K,
K: PartialOrd,
source
fn is_sorted_by_key<F, K>(self, f: F) -> bool where
Self: Sized,
F: FnMut(Self::Item) -> K,
K: PartialOrd,
sourceChecks if the elements of this iterator are sorted using the given key extraction function. Read more
impl<T, const N: usize> FusedIterator for IntoIter<T, N>
1.40.0 · sourceimpl<T, const N: usize> TrustedLen for IntoIter<T, N>
1.40.0 · sourceAuto Trait Implementations
impl<T, const N: usize> RefUnwindSafe for IntoIter<T, N> where
T: RefUnwindSafe,
impl<T, const N: usize> Send for IntoIter<T, N> where
T: Send,
impl<T, const N: usize> Sync for IntoIter<T, N> where
T: Sync,
impl<T, const N: usize> Unpin for IntoIter<T, N> where
T: Unpin,
impl<T, const N: usize> UnwindSafe for IntoIter<T, N> where
T: UnwindSafe,
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
source
impl<T> BorrowMut<T> for T where
T: ?Sized,
sourcefn borrow_mut(&mut self) -> &mut T
const: unstable · source
fn borrow_mut(&mut self) -> &mut T
const: unstable · sourceMutably borrows from an owned value. Read more