pub struct Range<Idx> {
pub start: Idx,
pub end: Idx,
}Expand description
A (half-open) range bounded inclusively below and exclusively above
(start..end).
The range start..end contains all values with start <= x < end.
It is empty if start >= end.
Examples
The start..end syntax is a Range:
assert_eq!((3..5), std::ops::Range { start: 3, end: 5 });
assert_eq!(3 + 4 + 5, (3..6).sum());Runlet arr = [0, 1, 2, 3, 4];
assert_eq!(arr[ .. ], [0, 1, 2, 3, 4]);
assert_eq!(arr[ .. 3], [0, 1, 2 ]);
assert_eq!(arr[ ..=3], [0, 1, 2, 3 ]);
assert_eq!(arr[1.. ], [ 1, 2, 3, 4]);
assert_eq!(arr[1.. 3], [ 1, 2 ]); // This is a `Range`
assert_eq!(arr[1..=3], [ 1, 2, 3 ]);RunFields
start: IdxThe lower bound of the range (inclusive).
end: IdxThe upper bound of the range (exclusive).
Implementations
impl<Idx: PartialOrd<Idx>> Range<Idx>
source
impl<Idx: PartialOrd<Idx>> Range<Idx>
sourcepub fn contains<U>(&self, item: &U) -> bool where
Idx: PartialOrd<U>,
U: ?Sized + PartialOrd<Idx>,
1.35.0 · source
pub fn contains<U>(&self, item: &U) -> bool where
Idx: PartialOrd<U>,
U: ?Sized + PartialOrd<Idx>,
1.35.0 · sourceReturns true if item is contained in the range.
Examples
assert!(!(3..5).contains(&2));
assert!( (3..5).contains(&3));
assert!( (3..5).contains(&4));
assert!(!(3..5).contains(&5));
assert!(!(3..3).contains(&3));
assert!(!(3..2).contains(&3));
assert!( (0.0..1.0).contains(&0.5));
assert!(!(0.0..1.0).contains(&f32::NAN));
assert!(!(0.0..f32::NAN).contains(&0.5));
assert!(!(f32::NAN..1.0).contains(&0.5));Runpub fn is_empty(&self) -> bool
1.47.0 · source
pub fn is_empty(&self) -> bool
1.47.0 · sourceReturns true if the range contains no items.
Examples
assert!(!(3..5).is_empty());
assert!( (3..3).is_empty());
assert!( (3..2).is_empty());RunThe range is empty if either side is incomparable:
assert!(!(3.0..5.0).is_empty());
assert!( (3.0..f32::NAN).is_empty());
assert!( (f32::NAN..5.0).is_empty());RunTrait Implementations
impl<A: Step> DoubleEndedIterator for Range<A>
source
impl<A: Step> DoubleEndedIterator for Range<A>
sourcefn next_back(&mut self) -> Option<A>
source
fn next_back(&mut self) -> Option<A>
sourceRemoves and returns an element from the end of the iterator. Read more
fn nth_back(&mut self, n: usize) -> Option<A>
source
fn nth_back(&mut self, n: usize) -> Option<A>
sourceReturns the nth element from the end of the iterator. 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 try_rfold<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_rfold<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 · sourceThis is the reverse version of Iterator::try_fold(): it takes
elements starting from the back of the iterator. Read more
impl ExactSizeIterator for Range<usize>
source
impl ExactSizeIterator for Range<usize>
sourceimpl ExactSizeIterator for Range<u8>
source
impl ExactSizeIterator for Range<u8>
sourceimpl ExactSizeIterator for Range<u16>
source
impl ExactSizeIterator for Range<u16>
sourceimpl ExactSizeIterator for Range<isize>
source
impl ExactSizeIterator for Range<isize>
sourceimpl ExactSizeIterator for Range<i8>
source
impl ExactSizeIterator for Range<i8>
sourceimpl ExactSizeIterator for Range<i16>
source
impl ExactSizeIterator for Range<i16>
sourceimpl ExactSizeIterator for Range<u32>
source
impl ExactSizeIterator for Range<u32>
sourceimpl ExactSizeIterator for Range<i32>
source
impl ExactSizeIterator for Range<i32>
sourceimpl<A: Step> Iterator for Range<A>
source
impl<A: Step> Iterator for Range<A>
sourcetype Item = A
type Item = A
The type of the elements being iterated over.
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 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 count(self) -> usize where
Self: Sized,
source
fn count(self) -> usize where
Self: Sized,
sourceConsumes the iterator, counting the number of iterations and returning it. 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>,
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>,
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,
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,
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,
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,
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,
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,
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>,
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>,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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>,
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>,
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,
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,
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,
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,
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),
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),
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,
source
fn by_ref(&mut self) -> &mut Self where
Self: Sized,
sourceBorrows an iterator, rather than consuming it. Read more
fn collect<B: FromIterator<Self::Item>>(self) -> B where
Self: Sized,
source
fn collect<B: FromIterator<Self::Item>>(self) -> B where
Self: Sized,
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,
source
fn partition<B, F>(self, f: F) -> (B, B) where
Self: Sized,
B: Default + Extend<Self::Item>,
F: FnMut(&Self::Item) -> bool,
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 fold<B, F>(self, init: B, f: F) -> B where
Self: Sized,
F: FnMut(B, Self::Item) -> B,
source
fn fold<B, F>(self, init: B, f: F) -> B where
Self: Sized,
F: FnMut(B, Self::Item) -> B,
sourceFolds every element into an accumulator by applying an operation, returning the final result. Read more
fn reduce<F>(self, f: F) -> Option<Self::Item> where
Self: Sized,
F: FnMut(Self::Item, Self::Item) -> Self::Item,
1.51.0 · source
fn reduce<F>(self, f: F) -> Option<Self::Item> where
Self: Sized,
F: FnMut(Self::Item, Self::Item) -> Self::Item,
1.51.0 · 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,
source
fn all<F>(&mut self, f: F) -> bool where
Self: Sized,
F: FnMut(Self::Item) -> bool,
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,
source
fn any<F>(&mut self, f: F) -> bool where
Self: Sized,
F: FnMut(Self::Item) -> bool,
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,
source
fn find<P>(&mut self, predicate: P) -> Option<Self::Item> where
Self: Sized,
P: FnMut(&Self::Item) -> bool,
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,
source
fn position<P>(&mut self, predicate: P) -> Option<usize> where
Self: Sized,
P: FnMut(Self::Item) -> bool,
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,
source
fn rposition<P>(&mut self, predicate: P) -> Option<usize> where
P: FnMut(Self::Item) -> bool,
Self: Sized + ExactSizeIterator + DoubleEndedIterator,
sourceSearches for an element in an iterator from the right, returning its index. 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,
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,
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)>,
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)>,
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,
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,
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,
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,
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_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> RangeBounds<T> for Range<T>
1.28.0 · source
impl<T> RangeBounds<T> for Range<T>
1.28.0 · sourceimpl<T> RangeBounds<T> for Range<&T>
1.28.0 · source
impl<T> RangeBounds<T> for Range<&T>
1.28.0 · sourceimpl<T> SliceIndex<[T]> for Range<usize>
1.15.0 (const: unstable) · source
impl<T> SliceIndex<[T]> for Range<usize>
1.15.0 (const: unstable) · sourcefn get(self, slice: &[T]) -> Option<&[T]>
const: unstable · source
fn get(self, slice: &[T]) -> Option<&[T]>
const: unstable · sourceslice_index_methods)Returns a shared reference to the output at this location, if in bounds. Read more
fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>
const: unstable · source
fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>
const: unstable · sourceslice_index_methods)Returns a mutable reference to the output at this location, if in bounds. Read more
unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T]
const: unstable · source
unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T]
const: unstable · sourceslice_index_methods)Returns a shared reference to the output at this location, without
performing any bounds checking.
Calling this method with an out-of-bounds index or a dangling slice pointer
is undefined behavior even if the resulting reference is not used. Read more
unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T]
const: unstable · source
unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T]
const: unstable · sourceslice_index_methods)Returns a mutable reference to the output at this location, without
performing any bounds checking.
Calling this method with an out-of-bounds index or a dangling slice pointer
is undefined behavior even if the resulting reference is not used. Read more
impl SliceIndex<str> for Range<usize>
1.20.0 (const: unstable) · source
impl SliceIndex<str> for Range<usize>
1.20.0 (const: unstable) · sourceImplements substring slicing with syntax &self[begin .. end] or &mut self[begin .. end].
Returns a slice of the given string from the byte range
[begin, end).
This operation is O(1).
Prior to 1.20.0, these indexing operations were still supported by
direct implementation of Index and IndexMut.
Panics
Panics if begin or end does not point to the starting byte offset of
a character (as defined by is_char_boundary), if begin > end, or if
end > len.
Examples
let s = "Löwe 老虎 Léopard";
assert_eq!(&s[0 .. 1], "L");
assert_eq!(&s[1 .. 9], "öwe 老");
// these will panic:
// byte 2 lies within `ö`:
// &s[2 ..3];
// byte 8 lies within `老`
// &s[1 .. 8];
// byte 100 is outside the string
// &s[3 .. 100];Runfn get(self, slice: &str) -> Option<&Self::Output>
const: unstable · source
fn get(self, slice: &str) -> Option<&Self::Output>
const: unstable · sourceslice_index_methods)Returns a shared reference to the output at this location, if in bounds. Read more
fn get_mut(self, slice: &mut str) -> Option<&mut Self::Output>
const: unstable · source
fn get_mut(self, slice: &mut str) -> Option<&mut Self::Output>
const: unstable · sourceslice_index_methods)Returns a mutable reference to the output at this location, if in bounds. Read more
unsafe fn get_unchecked(self, slice: *const str) -> *const Self::Output
const: unstable · source
unsafe fn get_unchecked(self, slice: *const str) -> *const Self::Output
const: unstable · sourceslice_index_methods)Returns a shared reference to the output at this location, without
performing any bounds checking.
Calling this method with an out-of-bounds index or a dangling slice pointer
is undefined behavior even if the resulting reference is not used. Read more
unsafe fn get_unchecked_mut(self, slice: *mut str) -> *mut Self::Output
const: unstable · source
unsafe fn get_unchecked_mut(self, slice: *mut str) -> *mut Self::Output
const: unstable · sourceslice_index_methods)Returns a mutable reference to the output at this location, without
performing any bounds checking.
Calling this method with an out-of-bounds index or a dangling slice pointer
is undefined behavior even if the resulting reference is not used. Read more
impl<Idx: Eq> Eq for Range<Idx>
sourceimpl<A: Step> FusedIterator for Range<A>
1.26.0 · sourceimpl<Idx> StructuralEq for Range<Idx>
sourceimpl<Idx> StructuralPartialEq for Range<Idx>
sourceimpl<A: TrustedStep> TrustedLen for Range<A>
sourceAuto Trait Implementations
impl<Idx> RefUnwindSafe for Range<Idx> where
Idx: RefUnwindSafe,
impl<Idx> Send for Range<Idx> where
Idx: Send,
impl<Idx> Sync for Range<Idx> where
Idx: Sync,
impl<Idx> Unpin for Range<Idx> where
Idx: Unpin,
impl<Idx> UnwindSafe for Range<Idx> where
Idx: 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