Struct Range
pub struct Range<Idx> {
pub start: Idx,
pub end: Idx,
}new_range_api #125687)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:
Fieldsยง
ยงstart: Idxnew_range_api #125687)The lower bound of the range (inclusive).
end: Idxnew_range_api #125687)The upper bound of the range (exclusive).
Implementationsยง
ยงimpl<Idx> Range<Idx>where
Idx: PartialOrd,
impl<Idx> Range<Idx>where
Idx: PartialOrd,
1.35.0 (const: unstable)pub fn contains<U>(&self, item: &U) -> bool
pub fn contains<U>(&self, item: &U) -> bool
Returns 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));1.47.0 (const: unstable)pub fn is_empty(&self) -> boolwhere
Idx: PartialOrd,
pub fn is_empty(&self) -> boolwhere
Idx: PartialOrd,
Returns true if the range contains no items.
ยงExamples
The range is empty if either side is incomparable:
Trait Implementationsยง
1.0.0ยงimpl<A> DoubleEndedIterator for Range<A>where
A: Step,
impl<A> DoubleEndedIterator for Range<A>where
A: Step,
ยงfn next_back(&mut self) -> Option<A>
fn next_back(&mut self) -> Option<A>
ยงfn nth_back(&mut self, n: usize) -> Option<A>
fn nth_back(&mut self, n: usize) -> Option<A>
nth element from the end of the iterator. Read moreยงfn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
iter_advance_by #77404)n elements. Read more1.27.0ยงfn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
Iterator::try_fold(): it takes
elements starting from the back of the iterator. Read more1.0.0ยงimpl ExactSizeIterator for Range<i16>
impl ExactSizeIterator for Range<i16>
1.0.0ยงimpl ExactSizeIterator for Range<i32>
impl ExactSizeIterator for Range<i32>
1.0.0ยงimpl ExactSizeIterator for Range<i8>
impl ExactSizeIterator for Range<i8>
1.0.0ยงimpl ExactSizeIterator for Range<isize>
impl ExactSizeIterator for Range<isize>
1.0.0ยงimpl ExactSizeIterator for Range<u16>
impl ExactSizeIterator for Range<u16>
1.0.0ยงimpl ExactSizeIterator for Range<u32>
impl ExactSizeIterator for Range<u32>
1.0.0ยงimpl ExactSizeIterator for Range<u8>
impl ExactSizeIterator for Range<u8>
1.0.0ยงimpl ExactSizeIterator for Range<usize>
impl ExactSizeIterator for Range<usize>
ยงimpl GetDisjointMutIndex for Range<usize>
impl GetDisjointMutIndex for Range<usize>
ยงfn is_in_bounds(&self, len: usize) -> bool
fn is_in_bounds(&self, len: usize) -> bool
get_disjoint_mut_helpers)true if self is in bounds for len slice elements.ยงimpl Index<Range<usize>> for ByteString
impl Index<Range<usize>> for ByteString
ยงimpl IndexMut<Range<usize>> for ByteString
impl IndexMut<Range<usize>> for ByteString
ยงimpl<T> IntoBounds<T> for Range<T>
impl<T> IntoBounds<T> for Range<T>
1.0.0ยงimpl<A> Iterator for Range<A>where
A: Step,
impl<A> Iterator for Range<A>where
A: Step,
ยงfn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
ยงfn count(self) -> usize
fn count(self) -> usize
ยงfn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
iter_advance_by #77404)n elements. Read moreยง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 #98326)N values. 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> โ
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> โ
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(self, separator: Self::Item) -> Intersperse<Self> โ
fn intersperse(self, separator: Self::Item) -> Intersperse<Self> โ
iter_intersperse #79524)separator between adjacent
items of the original iterator. Read moreยงfn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> โ
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> โ
iter_intersperse #79524)separator
between adjacent items of the original iterator. Read more1.0.0ยงfn map<B, F>(self, f: F) -> Map<Self, F> โ
fn map<B, F>(self, f: F) -> Map<Self, F> โ
1.0.0ยงfn filter<P>(self, predicate: P) -> Filter<Self, P> โ
fn filter<P>(self, predicate: P) -> Filter<Self, P> โ
1.0.0ยงfn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> โ
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> โ
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> โ
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> โ
1.0.0ยงfn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> โ
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> โ
1.57.0ยงfn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> โ
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> โ
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 flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> โ
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> โ
1.29.0ยงfn flatten(self) -> Flatten<Self> โ
fn flatten(self) -> Flatten<Self> โ
ยงfn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N> โ
fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N> โ
iter_map_windows #87155)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 inspect<F>(self, f: F) -> Inspect<Self, F> โ
fn inspect<F>(self, f: F) -> Inspect<Self, F> โ
1.0.0ยงfn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Iterator. Read moreยงfn try_collect<B>(
&mut self,
) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
fn try_collect<B>( &mut self, ) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
iterator_try_collect #94047)ยงfn collect_into<E>(self, collection: &mut E) -> &mut E
fn collect_into<E>(self, collection: &mut E) -> &mut E
iter_collect_into #94780)1.0.0ยงfn partition<B, F>(self, f: F) -> (B, B)
fn partition<B, F>(self, f: F) -> (B, B)
ยงfn partition_in_place<'a, T, P>(self, predicate: P) -> usize
fn partition_in_place<'a, T, P>(self, predicate: P) -> usize
iter_partition_in_place #62543)true precede all those that return false.
Returns the number of true elements found. Read moreยงfn is_partitioned<P>(self, predicate: P) -> bool
fn is_partitioned<P>(self, predicate: P) -> bool
iter_is_partitioned #62544)true precede all those that return false. Read more1.27.0ยงfn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
1.27.0ยงfn try_for_each<F, R>(&mut self, f: F) -> R
fn try_for_each<F, R>(&mut self, f: F) -> R
1.0.0ยงfn fold<B, F>(self, init: B, f: F) -> B
fn fold<B, F>(self, init: B, f: F) -> B
1.51.0ยงfn reduce<F>(self, f: F) -> Option<Self::Item>
fn reduce<F>(self, f: F) -> Option<Self::Item>
ยงfn try_reduce<R>(
&mut self,
f: impl FnMut(Self::Item, Self::Item) -> R,
) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
fn try_reduce<R>( &mut self, f: impl FnMut(Self::Item, Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
iterator_try_reduce #87053)1.0.0ยงfn all<F>(&mut self, f: F) -> bool
fn all<F>(&mut self, f: F) -> bool
1.0.0ยงfn any<F>(&mut self, f: F) -> bool
fn any<F>(&mut self, f: F) -> bool
1.0.0ยงfn find<P>(&mut self, predicate: P) -> Option<Self::Item>
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
1.30.0ยงfn find_map<B, F>(&mut self, f: F) -> Option<B>
fn find_map<B, F>(&mut self, f: F) -> Option<B>
ยงfn try_find<R>(
&mut self,
f: impl FnMut(&Self::Item) -> R,
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
fn try_find<R>( &mut self, f: impl FnMut(&Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
try_find #63178)1.0.0ยงfn position<P>(&mut self, predicate: P) -> Option<usize>
fn position<P>(&mut self, predicate: P) -> Option<usize>
1.0.0ยงfn rposition<P>(&mut self, predicate: P) -> Option<usize>
fn rposition<P>(&mut self, predicate: P) -> Option<usize>
1.6.0ยงfn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
1.15.0ยงfn max_by<F>(self, compare: F) -> Option<Self::Item>
fn max_by<F>(self, compare: F) -> Option<Self::Item>
1.6.0ยงfn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
1.15.0ยงfn min_by<F>(self, compare: F) -> Option<Self::Item>
fn min_by<F>(self, compare: F) -> Option<Self::Item>
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)
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
1.36.0ยงfn copied<'a, T>(self) -> Copied<Self> โ
fn copied<'a, T>(self) -> Copied<Self> โ
ยง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 #100450)N elements of the iterator at a time. Read more1.11.0ยงfn product<P>(self) -> P
fn product<P>(self) -> P
ยงfn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
iter_order_by #64295)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>
fn partial_cmp<I>(self, other: I) -> Option<Ordering>
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 #64295)Iterator with those
of another with respect to the specified comparison function. Read moreยงfn eq_by<I, F>(self, other: I, eq: F) -> bool
fn eq_by<I, F>(self, other: I, eq: F) -> bool
iter_order_by #64295)1.5.0ยงfn lt<I>(self, other: I) -> bool
fn lt<I>(self, other: I) -> bool
Iterator are lexicographically
less than those of another. Read more1.5.0ยงfn le<I>(self, other: I) -> bool
fn le<I>(self, other: I) -> bool
Iterator are lexicographically
less or equal to those of another. Read more1.5.0ยงfn gt<I>(self, other: I) -> bool
fn gt<I>(self, other: I) -> bool
Iterator are lexicographically
greater than those of another. Read more1.5.0ยงfn ge<I>(self, other: I) -> bool
fn ge<I>(self, other: I) -> bool
Iterator are lexicographically
greater than or equal to those of another. Read more1.82.0ยงfn is_sorted_by<F>(self, compare: F) -> bool
fn is_sorted_by<F>(self, compare: F) -> bool
1.82.0ยงfn is_sorted_by_key<F, K>(self, f: F) -> bool
fn is_sorted_by_key<F, K>(self, f: F) -> bool
1.28.0 (const: unstable)ยงimpl<T> RangeBounds<T> for Range<&T>
If you need to use this implementation where T is unsized,
consider using the RangeBounds impl for a 2-tuple of Bound<&T>,
i.e. replace start..end with (Bound::Included(start), Bound::Excluded(end)).
impl<T> RangeBounds<T> for Range<&T>
If you need to use this implementation where T is unsized,
consider using the RangeBounds impl for a 2-tuple of Bound<&T>,
i.e. replace start..end with (Bound::Included(start), Bound::Excluded(end)).
1.28.0 (const: unstable)ยงimpl<T> RangeBounds<T> for Range<T>
impl<T> RangeBounds<T> for Range<T>
1.15.0 (const: unstable)ยงimpl<T> SliceIndex<[T]> for Range<usize>
The methods index and index_mut panic if:
impl<T> SliceIndex<[T]> for Range<usize>
The methods index and index_mut panic if:
- the start of the range is greater than the end of the range or
- the end of the range is out of bounds.
ยงfn get(self, slice: &[T]) -> Option<&[T]>
fn get(self, slice: &[T]) -> Option<&[T]>
slice_index_methods)ยงfn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>
fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>
slice_index_methods)ยงunsafe fn get_unchecked(self, slice: *const [T]) -> *const [T]
unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T]
slice_index_methods)ยงunsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T]
unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T]
slice_index_methods)ยงimpl SliceIndex<ByteStr> for Range<usize>
impl SliceIndex<ByteStr> for Range<usize>
ยงfn get(
self,
slice: &ByteStr,
) -> Option<&<Range<usize> as SliceIndex<ByteStr>>::Output>
fn get( self, slice: &ByteStr, ) -> Option<&<Range<usize> as SliceIndex<ByteStr>>::Output>
slice_index_methods)ยงfn get_mut(
self,
slice: &mut ByteStr,
) -> Option<&mut <Range<usize> as SliceIndex<ByteStr>>::Output>
fn get_mut( self, slice: &mut ByteStr, ) -> Option<&mut <Range<usize> as SliceIndex<ByteStr>>::Output>
slice_index_methods)ยงunsafe fn get_unchecked(
self,
slice: *const ByteStr,
) -> *const <Range<usize> as SliceIndex<ByteStr>>::Output
unsafe fn get_unchecked( self, slice: *const ByteStr, ) -> *const <Range<usize> as SliceIndex<ByteStr>>::Output
slice_index_methods)ยงunsafe fn get_unchecked_mut(
self,
slice: *mut ByteStr,
) -> *mut <Range<usize> as SliceIndex<ByteStr>>::Output
unsafe fn get_unchecked_mut( self, slice: *mut ByteStr, ) -> *mut <Range<usize> as SliceIndex<ByteStr>>::Output
slice_index_methods)1.20.0 (const: unstable)ยงimpl SliceIndex<str> for Range<usize>
Implements substring slicing with syntax &self[begin .. end] or &mut self[begin .. end].
impl SliceIndex<str> for Range<usize>
Implements 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
ยงfn get(self, slice: &str) -> Option<&<Range<usize> as SliceIndex<str>>::Output>
fn get(self, slice: &str) -> Option<&<Range<usize> as SliceIndex<str>>::Output>
slice_index_methods)ยงfn get_mut(
self,
slice: &mut str,
) -> Option<&mut <Range<usize> as SliceIndex<str>>::Output>
fn get_mut( self, slice: &mut str, ) -> Option<&mut <Range<usize> as SliceIndex<str>>::Output>
slice_index_methods)ยงunsafe fn get_unchecked(
self,
slice: *const str,
) -> *const <Range<usize> as SliceIndex<str>>::Output
unsafe fn get_unchecked( self, slice: *const str, ) -> *const <Range<usize> as SliceIndex<str>>::Output
slice_index_methods)ยงunsafe fn get_unchecked_mut(
self,
slice: *mut str,
) -> *mut <Range<usize> as SliceIndex<str>>::Output
unsafe fn get_unchecked_mut( self, slice: *mut str, ) -> *mut <Range<usize> as SliceIndex<str>>::Output
slice_index_methods)