pub struct Iter<'a, T, O>{ /* private fields */ }Expand description
Shared Bit-Slice Iteration
This view iterates each bit in the bit-slice by proxy reference. It is
created by the BitSlice::iter method.
Original
API Differences
While this iterator can manifest &bool references, it instead yields the
bitvec proxy reference for consistency with the IterMut type. It can
be converted to yield true references with .by_refs(). Additionally, because
it does not yield &bool, the Iterator::copied method does not apply. It
can be converted to an iterator of bool values with .by_vals().
Examples
use bitvec::prelude::*;
let bits = bits![0, 1];
for bit in bits.iter() {
  println!("{}", bit);
}Implementations§
source§impl<'a, T, O> Iter<'a, T, O>
 
impl<'a, T, O> Iter<'a, T, O>
sourcepub fn as_bitslice(&self) -> &'a BitSlice<T, O>
 
pub fn as_bitslice(&self) -> &'a BitSlice<T, O>
Views the currently unyielded bit-slice.
Because the iterator is a shared view, the returned bit-slice does not cause a lifetime conflict, and the iterator can continue to be used while it exists.
Original
Examples
use bitvec::prelude::*;
let bits = bits![0, 0, 1, 1];
let mut iter = bits.iter();
assert_eq!(iter.as_bitslice(), bits![0, 0, 1, 1]);
assert!(!*iter.nth(1).unwrap());
assert_eq!(iter.as_bitslice(), bits![1, 1]);pub fn as_slice(&self) -> &'a BitSlice<T, O>
.as_bitslice() insteadsourcepub fn by_refs(self) -> BitRefIter<'a, T, O>
 
pub fn by_refs(self) -> BitRefIter<'a, T, O>
Adapts the iterator to yield regular &bool references rather than the
proxy reference.
This allows the iterator to be used in APIs that expect ordinary
references. It reads from the proxy and provides an equivalent
&'static bool. The address value of the yielded reference is not
related to the addresses covered by the BitSlice buffer in any way.
Examples
use bitvec::prelude::*;
let bits = bits![0, 1];
let mut iter = bits.iter().by_refs();
assert_eq!(iter.next(), Some(&false));
assert_eq!(iter.next(), Some(&true));
assert!(iter.next().is_none());sourcepub fn by_vals(self) -> BitValIter<'a, T, O> ⓘ
 
pub fn by_vals(self) -> BitValIter<'a, T, O> ⓘ
Adapts the iterator to yield bool values rather than the
proxy reference.
This allows the iterator to be used in APIs that expect direct values.
It dereferences the proxy and yields the referent bool directly. It
replaces Iterator::copied, which is not available on this type.
Original
Performance
This bypasses the construction of a BitRef for each yielded bit. Do
not use bits.as_bitptr_range().map(|bp| unsafe { bp.read() }) in a
misguided attempt to eke out some additional performance in your code.
This iterator is already the fastest possible walk across a bit-slice. You do not need to beat it.
Examples
use bitvec::prelude::*;
let bits = bits![0, 1];
let mut iter = bits.iter().by_vals();
assert_eq!(iter.next(), Some(false));
assert_eq!(iter.next(), Some(true));
assert!(iter.next().is_none());sourcepub fn copied(self) -> BitValIter<'a, T, O> ⓘ
 👎Deprecated: Iterator::copied does not exist on this type. Use .by_vals() instead
pub fn copied(self) -> BitValIter<'a, T, O> ⓘ
Iterator::copied does not exist on this type. Use .by_vals() insteadYields bool values directly, rather than proxy references.
The original slice iterator yields true &bool, and as such allows
Iterator::copied to exist. This iterator does not satisfy the bounds
for that method, so .copied() is provided as an inherent in order to
maintain source compatibility. Prefer .by_vals() instead, which
avoids the name collision while still making clear that it yields bool
values.
Trait Implementations§
source§impl<'a, T, O> DoubleEndedIterator for Iter<'a, T, O>
 
impl<'a, T, O> DoubleEndedIterator for Iter<'a, T, O>
source§fn next_back(&mut self) -> Option<Self::Item>
 
fn next_back(&mut self) -> Option<Self::Item>
source§fn nth_back(&mut self, n: usize) -> Option<Self::Item>
 
fn nth_back(&mut self, n: usize) -> Option<Self::Item>
nth element from the end of the iterator. Read more§fn advance_back_by(&mut self, n: usize) -> Result<(), NonZeroUsize>
 
fn advance_back_by(&mut self, n: usize) -> Result<(), NonZeroUsize>
iter_advance_by)n elements. Read more1.27.0§fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> Rwhere
    Self: Sized,
    F: FnMut(B, Self::Item) -> R,
    R: Try<Output = B>,
 
fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> Rwhere
    Self: Sized,
    F: FnMut(B, Self::Item) -> R,
    R: Try<Output = B>,
Iterator::try_fold()]: it takes
elements starting from the back of the iterator. Read moresource§impl<'a, T, O> Iterator for Iter<'a, T, O>
 
impl<'a, T, O> Iterator for Iter<'a, T, O>
§type Item = <usize as BitSliceIndex<'a, T, O>>::Immut
 
type Item = <usize as BitSliceIndex<'a, T, O>>::Immut
source§fn next(&mut self) -> Option<Self::Item>
 
fn next(&mut self) -> Option<Self::Item>
source§fn nth(&mut self, n: usize) -> Option<Self::Item>
 
fn nth(&mut self, n: usize) -> Option<Self::Item>
nth element of the iterator. Read moresource§fn size_hint(&self) -> (usize, Option<usize>)
 
fn size_hint(&self) -> (usize, Option<usize>)
source§fn count(self) -> usize
 
fn count(self) -> usize
source§fn last(self) -> Option<Self::Item>
 
fn last(self) -> Option<Self::Item>
§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,
iter_next_chunk)N values. Read more§fn advance_by(&mut self, n: usize) -> Result<(), NonZeroUsize>
 
fn advance_by(&mut self, n: usize) -> Result<(), NonZeroUsize>
iter_advance_by)n elements. Read more1.28.0§fn step_by(self, step: usize) -> StepBy<Self>where
    Self: Sized,
 
fn step_by(self, step: usize) -> StepBy<Self>where
    Self: Sized,
1.0.0§fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>where
    Self: Sized,
    U: IntoIterator<Item = Self::Item>,
 
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>where
    Self: Sized,
    U: IntoIterator<Item = Self::Item>,
1.0.0§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,
§fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>where
    Self: Sized,
    G: FnMut() -> Self::Item,
 
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>where
    Self: Sized,
    G: FnMut() -> Self::Item,
iter_intersperse)separator
between adjacent items of the original iterator. Read more1.0.0§fn map<B, F>(self, f: F) -> Map<Self, F> ⓘwhere
    Self: Sized,
    F: FnMut(Self::Item) -> B,
 
fn map<B, F>(self, f: F) -> Map<Self, F> ⓘwhere
    Self: Sized,
    F: FnMut(Self::Item) -> B,
1.21.0§fn for_each<F>(self, f: F)where
    Self: Sized,
    F: FnMut(Self::Item),
 
fn for_each<F>(self, f: F)where
    Self: Sized,
    F: FnMut(Self::Item),
1.0.0§fn filter<P>(self, predicate: P) -> Filter<Self, P>where
    Self: Sized,
    P: FnMut(&Self::Item) -> bool,
 
fn filter<P>(self, predicate: P) -> Filter<Self, P>where
    Self: Sized,
    P: FnMut(&Self::Item) -> bool,
1.0.0§fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>where
    Self: Sized,
    F: FnMut(Self::Item) -> Option<B>,
 
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>where
    Self: Sized,
    F: FnMut(Self::Item) -> Option<B>,
1.0.0§fn enumerate(self) -> Enumerate<Self>where
    Self: Sized,
 
fn enumerate(self) -> Enumerate<Self>where
    Self: Sized,
1.0.0§fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>where
    Self: Sized,
    P: FnMut(&Self::Item) -> bool,
 
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>where
    Self: Sized,
    P: FnMut(&Self::Item) -> bool,
1.0.0§fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>where
    Self: Sized,
    P: FnMut(&Self::Item) -> bool,
 
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>where
    Self: Sized,
    P: FnMut(&Self::Item) -> bool,
1.57.0§fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>where
    Self: Sized,
    P: FnMut(Self::Item) -> Option<B>,
 
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>where
    Self: Sized,
    P: FnMut(Self::Item) -> Option<B>,
1.0.0§fn skip(self, n: usize) -> Skip<Self>where
    Self: Sized,
 
fn skip(self, n: usize) -> Skip<Self>where
    Self: Sized,
n elements. Read more1.0.0§fn take(self, n: usize) -> Take<Self>where
    Self: Sized,
 
fn take(self, n: usize) -> Take<Self>where
    Self: Sized,
n elements, or fewer
if the underlying iterator ends sooner. Read more1.0.0§fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>where
    Self: Sized,
    F: FnMut(&mut St, Self::Item) -> Option<B>,
 
fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>where
    Self: Sized,
    F: FnMut(&mut St, Self::Item) -> Option<B>,
1.0.0§fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>where
    Self: Sized,
    U: IntoIterator,
    F: FnMut(Self::Item) -> U,
 
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>where
    Self: Sized,
    U: IntoIterator,
    F: FnMut(Self::Item) -> U,
§fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>where
    Self: Sized,
    F: FnMut(&[Self::Item; N]) -> R,
 
fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>where
    Self: Sized,
    F: FnMut(&[Self::Item; N]) -> R,
iter_map_windows)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 more1.0.0§fn fuse(self) -> Fuse<Self>where
    Self: Sized,
 
fn fuse(self) -> Fuse<Self>where
    Self: Sized,
None]. Read more1.0.0§fn inspect<F>(self, f: F) -> Inspect<Self, F>where
    Self: Sized,
    F: FnMut(&Self::Item),
 
fn inspect<F>(self, f: F) -> Inspect<Self, F>where
    Self: Sized,
    F: FnMut(&Self::Item),
1.0.0§fn by_ref(&mut self) -> &mut Selfwhere
    Self: Sized,
 
fn by_ref(&mut self) -> &mut Selfwhere
    Self: Sized,
1.0.0§fn collect<B>(self) -> Bwhere
    B: FromIterator<Self::Item>,
    Self: Sized,
 
fn collect<B>(self) -> Bwhere
    B: FromIterator<Self::Item>,
    Self: Sized,
§fn collect_into<E>(self, collection: &mut E) -> &mut Ewhere
    E: Extend<Self::Item>,
    Self: Sized,
 
fn collect_into<E>(self, collection: &mut E) -> &mut Ewhere
    E: Extend<Self::Item>,
    Self: Sized,
iter_collect_into)1.0.0§fn partition<B, F>(self, f: F) -> (B, B)where
    Self: Sized,
    B: Default + Extend<Self::Item>,
    F: FnMut(&Self::Item) -> bool,
 
fn partition<B, F>(self, f: F) -> (B, B)where
    Self: Sized,
    B: Default + Extend<Self::Item>,
    F: FnMut(&Self::Item) -> bool,
§fn partition_in_place<'a, T, P>(self, predicate: P) -> usizewhere
    T: 'a,
    Self: Sized + DoubleEndedIterator<Item = &'a mut T>,
    P: FnMut(&T) -> bool,
 
fn partition_in_place<'a, T, P>(self, predicate: P) -> usizewhere
    T: 'a,
    Self: Sized + DoubleEndedIterator<Item = &'a mut T>,
    P: FnMut(&T) -> bool,
iter_partition_in_place)true precede all those that return false.
Returns the number of true elements found. Read more§fn is_partitioned<P>(self, predicate: P) -> boolwhere
    Self: Sized,
    P: FnMut(Self::Item) -> bool,
 
fn is_partitioned<P>(self, predicate: P) -> boolwhere
    Self: Sized,
    P: FnMut(Self::Item) -> bool,
iter_is_partitioned)true precede all those that return false. Read more1.27.0§fn try_fold<B, F, R>(&mut self, init: B, f: F) -> Rwhere
    Self: Sized,
    F: FnMut(B, Self::Item) -> R,
    R: Try<Output = B>,
 
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> Rwhere
    Self: Sized,
    F: FnMut(B, Self::Item) -> R,
    R: Try<Output = B>,
1.27.0§fn try_for_each<F, R>(&mut self, f: F) -> Rwhere
    Self: Sized,
    F: FnMut(Self::Item) -> R,
    R: Try<Output = ()>,
 
fn try_for_each<F, R>(&mut self, f: F) -> Rwhere
    Self: Sized,
    F: FnMut(Self::Item) -> R,
    R: Try<Output = ()>,
1.0.0§fn fold<B, F>(self, init: B, f: F) -> Bwhere
    Self: Sized,
    F: FnMut(B, Self::Item) -> B,
 
fn fold<B, F>(self, init: B, f: F) -> Bwhere
    Self: Sized,
    F: FnMut(B, Self::Item) -> B,
1.51.0§fn reduce<F>(self, f: F) -> Option<Self::Item>where
    Self: Sized,
    F: FnMut(Self::Item, Self::Item) -> Self::Item,
 
fn reduce<F>(self, f: F) -> Option<Self::Item>where
    Self: Sized,
    F: FnMut(Self::Item, Self::Item) -> Self::Item,
§fn try_reduce<F, R>(
    &mut self,
    f: F
) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryTypewhere
    Self: Sized,
    F: FnMut(Self::Item, Self::Item) -> R,
    R: Try<Output = Self::Item>,
    <R as Try>::Residual: Residual<Option<Self::Item>>,
 
fn try_reduce<F, R>(
    &mut self,
    f: F
) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryTypewhere
    Self: Sized,
    F: FnMut(Self::Item, Self::Item) -> R,
    R: Try<Output = Self::Item>,
    <R as Try>::Residual: Residual<Option<Self::Item>>,
iterator_try_reduce)1.0.0§fn all<F>(&mut self, f: F) -> boolwhere
    Self: Sized,
    F: FnMut(Self::Item) -> bool,
 
fn all<F>(&mut self, f: F) -> boolwhere
    Self: Sized,
    F: FnMut(Self::Item) -> bool,
1.0.0§fn any<F>(&mut self, f: F) -> boolwhere
    Self: Sized,
    F: FnMut(Self::Item) -> bool,
 
fn any<F>(&mut self, f: F) -> boolwhere
    Self: Sized,
    F: FnMut(Self::Item) -> bool,
1.0.0§fn find<P>(&mut self, predicate: P) -> Option<Self::Item>where
    Self: Sized,
    P: FnMut(&Self::Item) -> bool,
 
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>where
    Self: Sized,
    P: FnMut(&Self::Item) -> bool,
1.30.0§fn find_map<B, F>(&mut self, f: F) -> Option<B>where
    Self: Sized,
    F: FnMut(Self::Item) -> Option<B>,
 
fn find_map<B, F>(&mut self, f: F) -> Option<B>where
    Self: Sized,
    F: FnMut(Self::Item) -> Option<B>,
§fn try_find<F, R>(
    &mut self,
    f: F
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryTypewhere
    Self: Sized,
    F: FnMut(&Self::Item) -> R,
    R: Try<Output = bool>,
    <R as Try>::Residual: Residual<Option<Self::Item>>,
 
fn try_find<F, R>(
    &mut self,
    f: F
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryTypewhere
    Self: Sized,
    F: FnMut(&Self::Item) -> R,
    R: Try<Output = bool>,
    <R as Try>::Residual: Residual<Option<Self::Item>>,
try_find)1.0.0§fn position<P>(&mut self, predicate: P) -> Option<usize>where
    Self: Sized,
    P: FnMut(Self::Item) -> bool,
 
fn position<P>(&mut self, predicate: P) -> Option<usize>where
    Self: Sized,
    P: FnMut(Self::Item) -> bool,
1.0.0§fn rposition<P>(&mut self, predicate: P) -> Option<usize>where
    P: FnMut(Self::Item) -> bool,
    Self: Sized + ExactSizeIterator + DoubleEndedIterator,
 
fn rposition<P>(&mut self, predicate: P) -> Option<usize>where
    P: FnMut(Self::Item) -> bool,
    Self: Sized + ExactSizeIterator + DoubleEndedIterator,
1.6.0§fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>where
    B: Ord,
    Self: Sized,
    F: FnMut(&Self::Item) -> B,
 
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>where
    B: Ord,
    Self: Sized,
    F: FnMut(&Self::Item) -> B,
1.15.0§fn max_by<F>(self, compare: F) -> Option<Self::Item>where
    Self: Sized,
    F: FnMut(&Self::Item, &Self::Item) -> Ordering,
 
fn max_by<F>(self, compare: F) -> Option<Self::Item>where
    Self: Sized,
    F: FnMut(&Self::Item, &Self::Item) -> Ordering,
1.6.0§fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>where
    B: Ord,
    Self: Sized,
    F: FnMut(&Self::Item) -> B,
 
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>where
    B: Ord,
    Self: Sized,
    F: FnMut(&Self::Item) -> B,
1.15.0§fn min_by<F>(self, compare: F) -> Option<Self::Item>where
    Self: Sized,
    F: FnMut(&Self::Item, &Self::Item) -> Ordering,
 
fn min_by<F>(self, compare: F) -> Option<Self::Item>where
    Self: Sized,
    F: FnMut(&Self::Item, &Self::Item) -> Ordering,
1.0.0§fn rev(self) -> Rev<Self>where
    Self: Sized + DoubleEndedIterator,
 
fn rev(self) -> Rev<Self>where
    Self: Sized + DoubleEndedIterator,
1.0.0§fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)where
    FromA: Default + Extend<A>,
    FromB: Default + Extend<B>,
    Self: Sized + Iterator<Item = (A, B)>,
 
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.36.0§fn copied<'a, T>(self) -> Copied<Self>where
    T: 'a + Copy,
    Self: Sized + Iterator<Item = &'a T>,
 
fn copied<'a, T>(self) -> Copied<Self>where
    T: 'a + Copy,
    Self: Sized + Iterator<Item = &'a T>,
1.0.0§fn cloned<'a, T>(self) -> Cloned<Self>where
    T: 'a + Clone,
    Self: Sized + Iterator<Item = &'a T>,
 
fn cloned<'a, T>(self) -> Cloned<Self>where
    T: 'a + Clone,
    Self: Sized + Iterator<Item = &'a T>,
1.0.0§fn cycle(self) -> Cycle<Self>where
    Self: Sized + Clone,
 
fn cycle(self) -> Cycle<Self>where
    Self: Sized + Clone,
§fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>where
    Self: Sized,
 
fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>where
    Self: Sized,
iter_array_chunks)N elements of the iterator at a time. Read more1.11.0§fn sum<S>(self) -> Swhere
    Self: Sized,
    S: Sum<Self::Item>,
 
fn sum<S>(self) -> Swhere
    Self: Sized,
    S: Sum<Self::Item>,
1.11.0§fn product<P>(self) -> Pwhere
    Self: Sized,
    P: Product<Self::Item>,
 
fn product<P>(self) -> Pwhere
    Self: Sized,
    P: Product<Self::Item>,
§fn cmp_by<I, F>(self, other: I, cmp: F) -> Orderingwhere
    Self: Sized,
    I: IntoIterator,
    F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,
 
fn cmp_by<I, F>(self, other: I, cmp: F) -> Orderingwhere
    Self: Sized,
    I: IntoIterator,
    F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,
iter_order_by)Iterator] with those
of another with respect to the specified comparison function. Read more1.5.0§fn partial_cmp<I>(self, other: I) -> Option<Ordering>where
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>,
    Self: Sized,
 
fn partial_cmp<I>(self, other: I) -> Option<Ordering>where
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>,
    Self: Sized,
PartialOrd] elements of
this [Iterator] with those of another. The comparison works like short-circuit
evaluation, returning a result without comparing the remaining elements.
As soon as an order can be determined, the evaluation stops and a result is returned. 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 as IntoIterator>::Item) -> Option<Ordering>,
 
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
    Self: Sized,
    I: IntoIterator,
    F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
iter_order_by)Iterator] with those
of another with respect to the specified comparison function. Read more1.5.0§fn eq<I>(self, other: I) -> boolwhere
    I: IntoIterator,
    Self::Item: PartialEq<<I as IntoIterator>::Item>,
    Self: Sized,
 
fn eq<I>(self, other: I) -> boolwhere
    I: IntoIterator,
    Self::Item: PartialEq<<I as IntoIterator>::Item>,
    Self: Sized,
Iterator] are equal to those of
another. Read more§fn eq_by<I, F>(self, other: I, eq: F) -> boolwhere
    Self: Sized,
    I: IntoIterator,
    F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,
 
fn eq_by<I, F>(self, other: I, eq: F) -> boolwhere
    Self: Sized,
    I: IntoIterator,
    F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,
iter_order_by)Iterator] are equal to those of
another with respect to the specified equality function. Read more1.5.0§fn ne<I>(self, other: I) -> boolwhere
    I: IntoIterator,
    Self::Item: PartialEq<<I as IntoIterator>::Item>,
    Self: Sized,
 
fn ne<I>(self, other: I) -> boolwhere
    I: IntoIterator,
    Self::Item: PartialEq<<I as IntoIterator>::Item>,
    Self: Sized,
Iterator] are not equal to those of
another. Read more1.5.0§fn lt<I>(self, other: I) -> boolwhere
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>,
    Self: Sized,
 
fn lt<I>(self, other: I) -> boolwhere
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>,
    Self: Sized,
Iterator] are lexicographically
less than those of another. Read more1.5.0§fn le<I>(self, other: I) -> boolwhere
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>,
    Self: Sized,
 
fn le<I>(self, other: I) -> boolwhere
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>,
    Self: Sized,
Iterator] are lexicographically
less or equal to those of another. Read more1.5.0§fn gt<I>(self, other: I) -> boolwhere
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>,
    Self: Sized,
 
fn gt<I>(self, other: I) -> boolwhere
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>,
    Self: Sized,
Iterator] are lexicographically
greater than those of another. Read more1.5.0§fn ge<I>(self, other: I) -> boolwhere
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>,
    Self: Sized,
 
fn ge<I>(self, other: I) -> boolwhere
    I: IntoIterator,
    Self::Item: PartialOrd<<I as IntoIterator>::Item>,
    Self: Sized,
Iterator] are lexicographically
greater than or equal to those of another. Read more§fn is_sorted_by<F>(self, compare: F) -> boolwhere
    Self: Sized,
    F: FnMut(&Self::Item, &Self::Item) -> Option<Ordering>,
 
fn is_sorted_by<F>(self, compare: F) -> boolwhere
    Self: Sized,
    F: FnMut(&Self::Item, &Self::Item) -> Option<Ordering>,
is_sorted)§fn is_sorted_by_key<F, K>(self, f: F) -> boolwhere
    Self: Sized,
    F: FnMut(Self::Item) -> K,
    K: PartialOrd,
 
fn is_sorted_by_key<F, K>(self, f: F) -> boolwhere
    Self: Sized,
    F: FnMut(Self::Item) -> K,
    K: PartialOrd,
is_sorted)impl<T, O> FusedIterator for Iter<'_, T, O>
impl<'a, T, O> Send for Iter<'a, T, O>
impl<T, O> Sync for Iter<'_, T, O>
Auto Trait Implementations§
impl<'a, T, O> RefUnwindSafe for Iter<'a, T, O>
impl<'a, T, O> Unpin for Iter<'a, T, O>where
    O: Unpin,
impl<'a, T, O> UnwindSafe for Iter<'a, T, O>
Blanket Implementations§
§impl<T> Any for Twhere
    T: 'static + ?Sized,
 
impl<T> Any for Twhere
    T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
    T: ?Sized,
 
impl<T> Borrow<T> for Twhere
    T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
source§impl<T> FmtForward for T
 
impl<T> FmtForward for T
source§fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
 
fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
self to use its Binary implementation when Debug-formatted.source§fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
 
fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
self to use its Display implementation when
Debug-formatted.source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
 
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
 
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.source§fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
 
fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
self to use its Octal implementation when Debug-formatted.source§fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
 
fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
 
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
 
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§impl<T, U> Into<U> for Twhere
    U: From<T>,
 
impl<T, U> Into<U> for Twhere
    U: From<T>,
§impl<I> IntoIterator for Iwhere
    I: Iterator,
 
impl<I> IntoIterator for Iwhere
    I: Iterator,
source§impl<T> Pipe for Twhere
    T: ?Sized,
 
impl<T> Pipe for Twhere
    T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
    Self: Sized,
 
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
    Self: Sized,
source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
    R: 'a,
 
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
    R: 'a,
self and passes that borrow into the pipe function. Read moresource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
    R: 'a,
 
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
    R: 'a,
self and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
    Self: Borrow<B>,
    B: 'a + ?Sized,
    R: 'a,
 
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
    Self: Borrow<B>,
    B: 'a + ?Sized,
    R: 'a,
source§fn pipe_borrow_mut<'a, B, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
    Self: BorrowMut<B>,
    B: 'a + ?Sized,
    R: 'a,
 
fn pipe_borrow_mut<'a, B, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
    Self: BorrowMut<B>,
    B: 'a + ?Sized,
    R: 'a,
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
    Self: AsRef<U>,
    U: 'a + ?Sized,
    R: 'a,
 
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
    Self: AsRef<U>,
    U: 'a + ?Sized,
    R: 'a,
self, then passes self.as_ref() into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
    Self: AsMut<U>,
    U: 'a + ?Sized,
    R: 'a,
 
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
    Self: AsMut<U>,
    U: 'a + ?Sized,
    R: 'a,
self, then passes self.as_mut() into the pipe
function.source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
    Self: Deref<Target = T>,
    T: 'a + ?Sized,
    R: 'a,
 
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
    Self: Deref<Target = T>,
    T: 'a + ?Sized,
    R: 'a,
self, then passes self.deref() into the pipe function.source§fn pipe_deref_mut<'a, T, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut T) -> R
) -> Rwhere
    Self: DerefMut<Target = T> + Deref,
    T: 'a + ?Sized,
    R: 'a,
 
fn pipe_deref_mut<'a, T, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut T) -> R
) -> Rwhere
    Self: DerefMut<Target = T> + Deref,
    T: 'a + ?Sized,
    R: 'a,
self, then passes self.deref_mut() into the pipe
function.source§impl<T> Tap for T
 
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
 
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
Borrow<B> of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
 
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
BorrowMut<B> of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
 
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
AsRef<R> view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
    Self: AsMut<R>,
    R: ?Sized,
 
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
    Self: AsMut<R>,
    R: ?Sized,
AsMut<R> view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
    Self: Deref<Target = T>,
    T: ?Sized,
 
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
    Self: Deref<Target = T>,
    T: ?Sized,
Deref::Target of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
    Self: DerefMut<Target = T> + Deref,
    T: ?Sized,
 
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
    Self: DerefMut<Target = T> + Deref,
    T: ?Sized,
Deref::Target of a value. Read moresource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
 
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
 
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
 
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
    Self: Borrow<B>,
    B: ?Sized,
.tap_borrow() only in debug builds, and is erased in release
builds.source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
 
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
    Self: BorrowMut<B>,
    B: ?Sized,
.tap_borrow_mut() only in debug builds, and is erased in release
builds.source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
 
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
    Self: AsRef<R>,
    R: ?Sized,
.tap_ref() only in debug builds, and is erased in release
builds.source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
    Self: AsMut<R>,
    R: ?Sized,
 
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
    Self: AsMut<R>,
    R: ?Sized,
.tap_ref_mut() only in debug builds, and is erased in release
builds.source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Selfwhere
    Self: Deref<Target = T>,
    T: ?Sized,
 
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Selfwhere
    Self: Deref<Target = T>,
    T: ?Sized,
.tap_deref() only in debug builds, and is erased in release
builds.source§fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
    Self: DerefMut<Target = T> + Deref,
    T: ?Sized,
 
fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
    Self: DerefMut<Target = T> + Deref,
    T: ?Sized,
.tap_deref_mut() only in debug builds, and is erased in release
builds.