pub struct RangeInclusive<Idx> { /* private fields */ }
std
only.Expand description
A range bounded inclusively below and above (start..=end
).
The RangeInclusive
start..=end
contains all values with x >= start
and x <= end
. It is empty unless start <= end
.
This iterator is fused, but the specific values of start
and end
after
iteration has finished are unspecified other than that .is_empty()
will return true
once no more values will be produced.
§Examples
The start..=end
syntax is a RangeInclusive
:
assert_eq!((3..=5), std::ops::RangeInclusive::new(3, 5));
assert_eq!(3 + 4 + 5, (3..=5).sum());
let 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 ]);
assert_eq!(arr[1..=3], [ 1, 2, 3 ]); // This is a `RangeInclusive`
Implementations§
Source§impl<Idx> RangeInclusive<Idx>
impl<Idx> RangeInclusive<Idx>
1.27.0 (const: 1.32.0) · Sourcepub const fn new(start: Idx, end: Idx) -> RangeInclusive<Idx> ⓘ
pub const fn new(start: Idx, end: Idx) -> RangeInclusive<Idx> ⓘ
Creates a new inclusive range. Equivalent to writing start..=end
.
§Examples
use std::ops::RangeInclusive;
assert_eq!(3..=5, RangeInclusive::new(3, 5));
1.27.0 (const: 1.32.0) · Sourcepub const fn start(&self) -> &Idx
pub const fn start(&self) -> &Idx
Returns the lower bound of the range (inclusive).
When using an inclusive range for iteration, the values of start()
and
end()
are unspecified after the iteration ended. To determine
whether the inclusive range is empty, use the is_empty()
method
instead of comparing start() > end()
.
Note: the value returned by this method is unspecified after the range has been iterated to exhaustion.
§Examples
assert_eq!((3..=5).start(), &3);
1.27.0 (const: 1.32.0) · Sourcepub const fn end(&self) -> &Idx
pub const fn end(&self) -> &Idx
Returns the upper bound of the range (inclusive).
When using an inclusive range for iteration, the values of start()
and end()
are unspecified after the iteration ended. To determine
whether the inclusive range is empty, use the is_empty()
method
instead of comparing start() > end()
.
Note: the value returned by this method is unspecified after the range has been iterated to exhaustion.
§Examples
assert_eq!((3..=5).end(), &5);
1.27.0 (const: unstable) · Sourcepub fn into_inner(self) -> (Idx, Idx)
pub fn into_inner(self) -> (Idx, Idx)
Destructures the RangeInclusive
into (lower bound, upper (inclusive) bound).
Note: the value returned by this method is unspecified after the range has been iterated to exhaustion.
§Examples
assert_eq!((3..=5).into_inner(), (3, 5));
Source§impl<Idx> RangeInclusive<Idx>where
Idx: PartialOrd,
impl<Idx> RangeInclusive<Idx>where
Idx: PartialOrd,
1.35.0 · Sourcepub 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..=5).contains(&6));
assert!( (3..=3).contains(&3));
assert!(!(3..=2).contains(&3));
assert!( (0.0..=1.0).contains(&1.0));
assert!(!(0.0..=1.0).contains(&f32::NAN));
assert!(!(0.0..=f32::NAN).contains(&0.0));
assert!(!(f32::NAN..=1.0).contains(&1.0));
This method always returns false
after iteration has finished:
let mut r = 3..=5;
assert!(r.contains(&3) && r.contains(&5));
for _ in r.by_ref() {}
// Precise field values are unspecified here
assert!(!r.contains(&3) && !r.contains(&5));
1.47.0 · Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true
if the range contains no items.
§Examples
assert!(!(3..=5).is_empty());
assert!(!(3..=3).is_empty());
assert!( (3..=2).is_empty());
The 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());
This method returns true
after iteration has finished:
let mut r = 3..=5;
for _ in r.by_ref() {}
// Precise field values are unspecified here
assert!(r.is_empty());
Trait Implementations§
Source§impl<T> Archive for RangeInclusive<T>where
T: Archive,
impl<T> Archive for RangeInclusive<T>where
T: Archive,
Source§type Archived = ArchivedRangeInclusive<<T as Archive>::Archived>
type Archived = ArchivedRangeInclusive<<T as Archive>::Archived>
Source§type Resolver = Range<<T as Archive>::Resolver>
type Resolver = Range<<T as Archive>::Resolver>
Source§fn resolve(
&self,
resolver: <RangeInclusive<T> as Archive>::Resolver,
out: Place<<RangeInclusive<T> as Archive>::Archived>,
)
fn resolve( &self, resolver: <RangeInclusive<T> as Archive>::Resolver, out: Place<<RangeInclusive<T> as Archive>::Archived>, )
Source§const COPY_OPTIMIZATION: CopyOptimization<Self> = _
const COPY_OPTIMIZATION: CopyOptimization<Self> = _
serialize
. Read more1.26.0 · Source§impl<Idx> Clone for RangeInclusive<Idx>where
Idx: Clone,
impl<Idx> Clone for RangeInclusive<Idx>where
Idx: Clone,
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more1.26.0 · Source§impl<Idx> Debug for RangeInclusive<Idx>where
Idx: Debug,
impl<Idx> Debug for RangeInclusive<Idx>where
Idx: Debug,
1.26.0 · Source§impl<A> DoubleEndedIterator for RangeInclusive<A>where
A: Step,
impl<A> DoubleEndedIterator for RangeInclusive<A>where
A: Step,
Source§fn next_back(&mut self) -> Option<A>
fn next_back(&mut self) -> Option<A>
Source§fn nth_back(&mut self, n: usize) -> Option<A>
fn nth_back(&mut self, n: usize) -> Option<A>
n
th element from the end of the iterator. Read moreSource§fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> Rwhere
RangeInclusive<A>: Sized,
F: FnMut(B, <RangeInclusive<A> as Iterator>::Item) -> R,
R: Try<Output = B>,
fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> Rwhere
RangeInclusive<A>: Sized,
F: FnMut(B, <RangeInclusive<A> as Iterator>::Item) -> R,
R: Try<Output = B>,
Iterator::try_fold()
: it takes
elements starting from the back of the iterator. Read moreSource§fn rfold<AAA, FFF>(self, init: AAA, fold: FFF) -> AAA
fn rfold<AAA, FFF>(self, init: AAA, fold: FFF) -> AAA
1.26.0 · Source§impl ExactSizeIterator for RangeInclusive<i16>
impl ExactSizeIterator for RangeInclusive<i16>
1.26.0 · Source§impl ExactSizeIterator for RangeInclusive<i8>
impl ExactSizeIterator for RangeInclusive<i8>
1.26.0 · Source§impl ExactSizeIterator for RangeInclusive<u16>
impl ExactSizeIterator for RangeInclusive<u16>
1.26.0 · Source§impl ExactSizeIterator for RangeInclusive<u8>
impl ExactSizeIterator for RangeInclusive<u8>
Source§impl<T> From<RangeInclusive<T>> for RangeInclusive<T>
impl<T> From<RangeInclusive<T>> for RangeInclusive<T>
Source§fn from(value: RangeInclusive<T>) -> RangeInclusive<T> ⓘ
fn from(value: RangeInclusive<T>) -> RangeInclusive<T> ⓘ
Source§impl<T> From<RangeInclusive<T>> for RangeInclusive<T>
impl<T> From<RangeInclusive<T>> for RangeInclusive<T>
Source§fn from(value: RangeInclusive<T>) -> RangeInclusive<T>
fn from(value: RangeInclusive<T>) -> RangeInclusive<T>
1.26.0 · Source§impl<Idx> Hash for RangeInclusive<Idx>where
Idx: Hash,
impl<Idx> Hash for RangeInclusive<Idx>where
Idx: Hash,
Source§impl Index<RangeInclusive<usize>> for ArchivedString
impl Index<RangeInclusive<usize>> for ArchivedString
Source§fn index(
&self,
index: RangeInclusive<usize>,
) -> &<ArchivedString as Index<RangeInclusive<usize>>>::Output
fn index( &self, index: RangeInclusive<usize>, ) -> &<ArchivedString as Index<RangeInclusive<usize>>>::Output
container[index]
) operation. Read moreSource§impl Index<RangeInclusive<usize>> for UninitSlice
impl Index<RangeInclusive<usize>> for UninitSlice
Source§type Output = UninitSlice
type Output = UninitSlice
Source§fn index(&self, index: RangeInclusive<usize>) -> &UninitSlice
fn index(&self, index: RangeInclusive<usize>) -> &UninitSlice
container[index]
) operation. Read moreSource§impl IndexMut<RangeInclusive<usize>> for UninitSlice
impl IndexMut<RangeInclusive<usize>> for UninitSlice
Source§fn index_mut(&mut self, index: RangeInclusive<usize>) -> &mut UninitSlice
fn index_mut(&mut self, index: RangeInclusive<usize>) -> &mut UninitSlice
container[index]
) operation. Read more1.26.0 · Source§impl<A> Iterator for RangeInclusive<A>where
A: Step,
impl<A> Iterator for RangeInclusive<A>where
A: Step,
Source§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 try_fold<B, F, R>(&mut self, init: B, f: F) -> Rwhere
RangeInclusive<A>: Sized,
F: FnMut(B, <RangeInclusive<A> as Iterator>::Item) -> R,
R: Try<Output = B>,
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> Rwhere
RangeInclusive<A>: Sized,
F: FnMut(B, <RangeInclusive<A> as Iterator>::Item) -> R,
R: Try<Output = B>,
Source§fn fold<AAA, FFF>(self, init: AAA, fold: FFF) -> AAA
fn fold<AAA, FFF>(self, init: AAA, fold: FFF) -> AAA
Source§fn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
fn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
iter_next_chunk
)N
values. Read moreSource§fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
iter_advance_by
)n
elements. Read more1.28.0 · Source§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 · Source§fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> ⓘ
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> ⓘ
1.0.0 · Source§fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter> ⓘwhere
Self: Sized,
U: IntoIterator,
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter> ⓘwhere
Self: Sized,
U: IntoIterator,
Source§fn intersperse(self, separator: Self::Item) -> Intersperse<Self> ⓘ
fn intersperse(self, separator: Self::Item) -> Intersperse<Self> ⓘ
iter_intersperse
)separator
between adjacent
items of the original iterator. Read moreSource§fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> ⓘ
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> ⓘ
iter_intersperse
)separator
between adjacent items of the original iterator. Read more1.0.0 · Source§fn map<B, F>(self, f: F) -> Map<Self, F> ⓘ
fn map<B, F>(self, f: F) -> Map<Self, F> ⓘ
1.0.0 · Source§fn filter<P>(self, predicate: P) -> Filter<Self, P> ⓘ
fn filter<P>(self, predicate: P) -> Filter<Self, P> ⓘ
1.0.0 · Source§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 · Source§fn enumerate(self) -> Enumerate<Self> ⓘwhere
Self: Sized,
fn enumerate(self) -> Enumerate<Self> ⓘwhere
Self: Sized,
1.0.0 · Source§fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> ⓘ
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> ⓘ
1.0.0 · Source§fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> ⓘ
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> ⓘ
1.57.0 · Source§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 · Source§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 · Source§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 · Source§fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> ⓘ
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> ⓘ
1.29.0 · Source§fn flatten(self) -> Flatten<Self> ⓘ
fn flatten(self) -> Flatten<Self> ⓘ
Source§fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N> ⓘ
fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N> ⓘ
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 · Source§fn inspect<F>(self, f: F) -> Inspect<Self, F> ⓘ
fn inspect<F>(self, f: F) -> Inspect<Self, F> ⓘ
1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Source§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
)Source§fn collect_into<E>(self, collection: &mut E) -> &mut E
fn collect_into<E>(self, collection: &mut E) -> &mut E
iter_collect_into
)1.0.0 · Source§fn partition<B, F>(self, f: F) -> (B, B)
fn partition<B, F>(self, f: F) -> (B, B)
Source§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
)true
precede all those that return false
.
Returns the number of true
elements found. Read moreSource§fn is_partitioned<P>(self, predicate: P) -> bool
fn is_partitioned<P>(self, predicate: P) -> bool
iter_is_partitioned
)true
precede all those that return false
. Read more1.27.0 · Source§fn try_for_each<F, R>(&mut self, f: F) -> R
fn try_for_each<F, R>(&mut self, f: F) -> R
1.51.0 · Source§fn reduce<F>(self, f: F) -> Option<Self::Item>
fn reduce<F>(self, f: F) -> Option<Self::Item>
Source§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
)1.0.0 · Source§fn all<F>(&mut self, f: F) -> bool
fn all<F>(&mut self, f: F) -> bool
1.0.0 · Source§fn any<F>(&mut self, f: F) -> bool
fn any<F>(&mut self, f: F) -> bool
1.0.0 · Source§fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
1.30.0 · Source§fn find_map<B, F>(&mut self, f: F) -> Option<B>
fn find_map<B, F>(&mut self, f: F) -> Option<B>
Source§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
)1.0.0 · Source§fn position<P>(&mut self, predicate: P) -> Option<usize>
fn position<P>(&mut self, predicate: P) -> Option<usize>
1.0.0 · Source§fn rposition<P>(&mut self, predicate: P) -> Option<usize>
fn rposition<P>(&mut self, predicate: P) -> Option<usize>
1.6.0 · Source§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 · Source§fn max_by<F>(self, compare: F) -> Option<Self::Item>
fn max_by<F>(self, compare: F) -> Option<Self::Item>
1.6.0 · Source§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 · Source§fn min_by<F>(self, compare: F) -> Option<Self::Item>
fn min_by<F>(self, compare: F) -> Option<Self::Item>
1.0.0 · Source§fn rev(self) -> Rev<Self> ⓘwhere
Self: Sized + DoubleEndedIterator,
fn rev(self) -> Rev<Self> ⓘwhere
Self: Sized + DoubleEndedIterator,
1.0.0 · Source§fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
1.36.0 · Source§fn copied<'a, T>(self) -> Copied<Self> ⓘ
fn copied<'a, T>(self) -> Copied<Self> ⓘ
Source§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 · Source§fn product<P>(self) -> P
fn product<P>(self) -> P
Source§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
)Iterator
with those
of another with respect to the specified comparison function. Read more1.5.0 · Source§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 moreSource§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 moreSource§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
)1.5.0 · Source§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 · Source§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 · Source§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 · Source§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 · Source§fn is_sorted_by<F>(self, compare: F) -> bool
fn is_sorted_by<F>(self, compare: F) -> bool
1.82.0 · Source§fn is_sorted_by_key<F, K>(self, f: F) -> bool
fn is_sorted_by_key<F, K>(self, f: F) -> bool
Source§impl<T, U> PartialEq<RangeInclusive<T>> for ArchivedRangeInclusive<U>where
U: PartialEq<T>,
impl<T, U> PartialEq<RangeInclusive<T>> for ArchivedRangeInclusive<U>where
U: PartialEq<T>,
1.26.0 · Source§impl<Idx> PartialEq for RangeInclusive<Idx>where
Idx: PartialEq,
impl<Idx> PartialEq for RangeInclusive<Idx>where
Idx: PartialEq,
1.28.0 · Source§impl<T> RangeBounds<T> for RangeInclusive<&T>
impl<T> RangeBounds<T> for RangeInclusive<&T>
1.28.0 · Source§impl<T> RangeBounds<T> for RangeInclusive<T>
impl<T> RangeBounds<T> for RangeInclusive<T>
Source§impl<T, S> Serialize<S> for RangeInclusive<T>
impl<T, S> Serialize<S> for RangeInclusive<T>
1.26.0 · Source§impl<T> SliceIndex<[T]> for RangeInclusive<usize>
impl<T> SliceIndex<[T]> for RangeInclusive<usize>
The methods index
and index_mut
panic if:
- the end of the range is
usize::MAX
or - the start of the range is greater than the end of the range or
- the end of the range is out of bounds.
Source§fn get(self, slice: &[T]) -> Option<&[T]>
fn get(self, slice: &[T]) -> Option<&[T]>
slice_index_methods
)Source§fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>
fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>
slice_index_methods
)Source§unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T]
unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T]
slice_index_methods
)Source§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
)1.26.0 · Source§impl SliceIndex<str> for RangeInclusive<usize>
impl SliceIndex<str> for RangeInclusive<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
]. Equivalent to &self [begin .. end + 1]
or &mut self[begin .. end + 1]
, except if end
has the maximum value for
usize
.
This operation is O(1).
§Panics
Panics if begin
does not point to the starting byte offset of
a character (as defined by is_char_boundary
), if end
does not point
to the ending byte offset of a character (end + 1
is either a starting
byte offset or equal to len
), if begin > end
, or if end >= len
.
Source§fn get(
self,
slice: &str,
) -> Option<&<RangeInclusive<usize> as SliceIndex<str>>::Output>
fn get( self, slice: &str, ) -> Option<&<RangeInclusive<usize> as SliceIndex<str>>::Output>
slice_index_methods
)Source§fn get_mut(
self,
slice: &mut str,
) -> Option<&mut <RangeInclusive<usize> as SliceIndex<str>>::Output>
fn get_mut( self, slice: &mut str, ) -> Option<&mut <RangeInclusive<usize> as SliceIndex<str>>::Output>
slice_index_methods
)Source§unsafe fn get_unchecked(
self,
slice: *const str,
) -> *const <RangeInclusive<usize> as SliceIndex<str>>::Output
unsafe fn get_unchecked( self, slice: *const str, ) -> *const <RangeInclusive<usize> as SliceIndex<str>>::Output
slice_index_methods
)Source§unsafe fn get_unchecked_mut(
self,
slice: *mut str,
) -> *mut <RangeInclusive<usize> as SliceIndex<str>>::Output
unsafe fn get_unchecked_mut( self, slice: *mut str, ) -> *mut <RangeInclusive<usize> as SliceIndex<str>>::Output
slice_index_methods
)Source§fn index(
self,
slice: &str,
) -> &<RangeInclusive<usize> as SliceIndex<str>>::Output ⓘ
fn index( self, slice: &str, ) -> &<RangeInclusive<usize> as SliceIndex<str>>::Output ⓘ
slice_index_methods
)Source§fn index_mut(
self,
slice: &mut str,
) -> &mut <RangeInclusive<usize> as SliceIndex<str>>::Output ⓘ
fn index_mut( self, slice: &mut str, ) -> &mut <RangeInclusive<usize> as SliceIndex<str>>::Output ⓘ
slice_index_methods
)impl<Idx> Eq for RangeInclusive<Idx>where
Idx: Eq,
impl<A> FusedIterator for RangeInclusive<A>where
A: Step,
impl<Idx> StructuralPartialEq for RangeInclusive<Idx>
impl<A> TrustedLen for RangeInclusive<A>where
A: TrustedStep,
Auto Trait Implementations§
impl<Idx> Freeze for RangeInclusive<Idx>where
Idx: Freeze,
impl<Idx> RefUnwindSafe for RangeInclusive<Idx>where
Idx: RefUnwindSafe,
impl<Idx> Send for RangeInclusive<Idx>where
Idx: Send,
impl<Idx> Sync for RangeInclusive<Idx>where
Idx: Sync,
impl<Idx> Unpin for RangeInclusive<Idx>where
Idx: Unpin,
impl<Idx> UnwindSafe for RangeInclusive<Idx>where
Idx: UnwindSafe,
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> ArchiveUnsized for Twhere
T: Archive,
impl<T> ArchiveUnsized for Twhere
T: Archive,
Source§type Archived = <T as Archive>::Archived
type Archived = <T as Archive>::Archived
Archive
, it may be
unsized. Read moreSource§fn archived_metadata(
&self,
) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
fn archived_metadata( &self, ) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.