pub struct RangeInclusive<Idx> { /* private fields */ }
new_range_api #125687)
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.
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`
impl<Idx> RangeInclusive<Idx>
pub const fn new(start: Idx, end: Idx) -> RangeInclusive<Idx> ⓘ
Creates a new inclusive range. Equivalent to writing start..=end.
use std::ops::RangeInclusive; assert_eq!(3..=5, RangeInclusive::new(3, 5));
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.
assert_eq!((3..=5).start(), &3);
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.
assert_eq!((3..=5).end(), &5);
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.
assert_eq!((3..=5).into_inner(), (3, 5));
impl<Idx> RangeInclusive<Idx>where
Idx: PartialOrd,pub fn contains<U>(&self, item: &U) -> boolwhere
Idx: PartialOrd<U>,
U: PartialOrd<Idx> + ?Sized,Returns true if item is contained in the range.
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));pub fn is_empty(&self) -> boolwhere
Idx: PartialOrd,Returns true if the range contains no items.
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());impl<Idx> Clone for RangeInclusive<Idx>where
Idx: Clone,fn clone(&self) -> RangeInclusive<Idx> ⓘ
fn clone_from(&mut self, source: &Self)
source. Read more
impl<Idx> Debug for RangeInclusive<Idx>where
Idx: Debug,fn fmt(&self, fmt: &mut Formatter<'_>) -> Result<(), Error>
impl<A> DoubleEndedIterator for RangeInclusive<A>where
A: Step,fn next_back(&mut self) -> Option<A>
fn nth_back(&mut self, n: usize) -> Option<A>
nth element from the end of the iterator. Read more
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 more
fn rfold<AAA, FFF>(self, init: AAA, fold: FFF) -> AAAwhere
FFF: FnMut(AAA, <RangeInclusive<A> as Iterator>::Item) -> AAA,fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
iter_advance_by #77404)
n elements. Read more
fn rfind<P>(&mut self, predicate: P) -> Option<Self::Item>where
Self: Sized,
P: FnMut(&Self::Item) -> bool,impl ExactSizeIterator for RangeInclusive<i16>
fn len(&self) -> usize
fn is_empty(&self) -> bool
exact_size_is_empty #35428)
true if the iterator is empty. Read more
impl ExactSizeIterator for RangeInclusive<i8>
fn len(&self) -> usize
fn is_empty(&self) -> bool
exact_size_is_empty #35428)
true if the iterator is empty. Read more
impl ExactSizeIterator for RangeInclusive<u16>
fn len(&self) -> usize
fn is_empty(&self) -> bool
exact_size_is_empty #35428)
true if the iterator is empty. Read more
impl ExactSizeIterator for RangeInclusive<u8>
fn len(&self) -> usize
fn is_empty(&self) -> bool
exact_size_is_empty #35428)
true if the iterator is empty. Read more
impl<T> From<RangeInclusive<T>> for RangeInclusive<T>
fn from(value: RangeInclusive<T>) -> RangeInclusive<T> ⓘ
impl<T> From<RangeInclusive<T>> for RangeInclusive<T>
fn from(value: RangeInclusive<T>) -> RangeInclusive<T>
impl GetDisjointMutIndex for RangeInclusive<usize>
fn is_in_bounds(&self, len: usize) -> bool
get_disjoint_mut_helpers)
true if self is in bounds for len slice elements.fn is_overlapping(&self, other: &RangeInclusive<usize>) -> bool
get_disjoint_mut_helpers)
impl<Idx> Hash for RangeInclusive<Idx>where
Idx: Hash,fn hash<__H>(&self, state: &mut __H)where
__H: Hasher,fn hash_slice<H>(data: &[Self], state: &mut H)where
H: Hasher,
Self: Sized,impl Index<RangeInclusive<usize>> for ByteString
type Output = ByteStr
fn index(&self, r: RangeInclusive<usize>) -> &ByteStr
container[index]) operation. Read more
impl IndexMut<RangeInclusive<usize>> for ByteString
fn index_mut(&mut self, r: RangeInclusive<usize>) -> &mut ByteStr
container[index]) operation. Read more
impl<T> IntoBounds<T> for RangeInclusive<T>
fn into_bounds(self) -> (Bound<T>, Bound<T>)
range_into_bounds #136903)
(start_bound, end_bound). Read more
fn intersect<R>(self, other: R) -> (Bound<T>, Bound<T>)where
Self: Sized,
T: Ord,
R: IntoBounds<T>,range_into_bounds #136903)
impl<A> Iterator for RangeInclusive<A>where
A: Step,type Item = A
fn next(&mut self) -> Option<A>
fn size_hint(&self) -> (usize, Option<usize>)
fn count(self) -> usize
fn nth(&mut self, n: usize) -> Option<A>
nth element of the iterator. Read more
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 fold<AAA, FFF>(self, init: AAA, fold: FFF) -> AAAwhere
FFF: FnMut(AAA, <RangeInclusive<A> as Iterator>::Item) -> AAA,fn last(self) -> Option<A>
fn min(self) -> Option<A>where
A: Ord,fn max(self) -> Option<A>where
A: Ord,fn is_sorted(self) -> bool
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 more
fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
iter_advance_by #77404)
n elements. Read more
fn step_by(self, step: usize) -> StepBy<Self> ⓘwhere
Self: Sized,fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> ⓘwhere
Self: Sized,
U: IntoIterator<Item = Self::Item>,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> ⓘwhere
Self: Sized,
Self::Item: Clone,iter_intersperse #79524)
separator between adjacent items of the original iterator. Read more
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> ⓘwhere
Self: Sized,
G: FnMut() -> Self::Item,iter_intersperse #79524)
separator between adjacent items of the original iterator. Read more
fn map<B, F>(self, f: F) -> Map<Self, F> ⓘwhere
Self: Sized,
F: FnMut(Self::Item) -> B,fn for_each<F>(self, f: F)where
Self: Sized,
F: FnMut(Self::Item),fn filter<P>(self, predicate: P) -> Filter<Self, P> ⓘwhere
Self: Sized,
P: FnMut(&Self::Item) -> bool,fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> ⓘwhere
Self: Sized,
F: FnMut(Self::Item) -> Option<B>,fn enumerate(self) -> Enumerate<Self> ⓘwhere
Self: Sized,fn peekable(self) -> Peekable<Self> ⓘwhere
Self: Sized,peek and peek_mut methods to look at the next element of the iterator without consuming it. See their documentation for more information. Read more
fn skip_while<P>(self, predicate: P) -> SkipWhile<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,fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> ⓘwhere
Self: Sized,
P: FnMut(Self::Item) -> Option<B>,fn skip(self, n: usize) -> Skip<Self> ⓘwhere
Self: Sized,n elements. Read more
fn take(self, n: usize) -> Take<Self> ⓘwhere
Self: Sized,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> ⓘwhere
Self: Sized,
F: FnMut(&mut St, Self::Item) -> Option<B>,fold, holds internal state, but unlike fold, produces a new iterator. Read more
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> ⓘwhere
Self: Sized,
U: IntoIterator,
F: FnMut(Self::Item) -> U,fn flatten(self) -> Flatten<Self> ⓘwhere
Self: Sized,
Self::Item: IntoIterator,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 #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 more
fn fuse(self) -> Fuse<Self> ⓘwhere
Self: Sized,fn inspect<F>(self, f: F) -> Inspect<Self, F> ⓘwhere
Self: Sized,
F: FnMut(&Self::Item),fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,Iterator. Read more
fn collect<B>(self) -> Bwhere
B: FromIterator<Self::Item>,
Self: Sized,fn try_collect<B>(
&mut self,
) -> <<Self::Item as Try>::Residual as Residual<B>>::TryTypewhere
Self: Sized,
Self::Item: Try,
<Self::Item as Try>::Residual: Residual<B>,
B: FromIterator<<Self::Item as Try>::Output>,iterator_try_collect #94047)
fn collect_into<E>(self, collection: &mut E) -> &mut Ewhere
E: Extend<Self::Item>,
Self: Sized,iter_collect_into #94780)
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,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) -> boolwhere
Self: Sized,
P: FnMut(Self::Item) -> bool,iter_is_partitioned #62544)
true precede all those that return false. Read more
fn try_for_each<F, R>(&mut self, f: F) -> Rwhere
Self: Sized,
F: FnMut(Self::Item) -> R,
R: Try<Output = ()>,fn reduce<F>(self, f: F) -> Option<Self::Item>where
Self: Sized,
F: FnMut(Self::Item, Self::Item) -> 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>>>::TryTypewhere
Self: Sized,
R: Try<Output = Self::Item>,
<R as Try>::Residual: Residual<Option<Self::Item>>,iterator_try_reduce #87053)
fn all<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,fn find<P>(&mut self, predicate: P) -> Option<Self::Item>where
Self: Sized,
P: FnMut(&Self::Item) -> bool,fn find_map<B, F>(&mut self, f: F) -> Option<B>where
Self: Sized,
F: FnMut(Self::Item) -> Option<B>,fn try_find<R>(
&mut self,
f: impl FnMut(&Self::Item) -> R,
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryTypewhere
Self: Sized,
R: Try<Output = bool>,
<R as Try>::Residual: Residual<Option<Self::Item>>,try_find #63178)
fn position<P>(&mut self, predicate: P) -> Option<usize>where
Self: Sized,
P: FnMut(Self::Item) -> bool,fn rposition<P>(&mut self, predicate: P) -> Option<usize>where
P: FnMut(Self::Item) -> bool,
Self: Sized + ExactSizeIterator + DoubleEndedIterator,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<F>(self, compare: F) -> Option<Self::Item>where
Self: Sized,
F: FnMut(&Self::Item, &Self::Item) -> Ordering,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<F>(self, compare: F) -> Option<Self::Item>where
Self: Sized,
F: FnMut(&Self::Item, &Self::Item) -> Ordering,fn rev(self) -> Rev<Self> ⓘwhere
Self: Sized + DoubleEndedIterator,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 copied<'a, T>(self) -> Copied<Self> ⓘwhere
T: Copy + 'a,
Self: Sized + Iterator<Item = &'a T>,fn cloned<'a, T>(self) -> Cloned<Self> ⓘwhere
T: Clone + 'a,
Self: Sized + Iterator<Item = &'a T>,fn cycle(self) -> Cycle<Self> ⓘwhere
Self: Sized + Clone,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 more
fn sum<S>(self) -> Swhere
Self: Sized,
S: Sum<Self::Item>,fn product<P>(self) -> Pwhere
Self: Sized,
P: Product<Self::Item>,fn cmp<I>(self, other: I) -> Orderingwhere
I: IntoIterator<Item = Self::Item>,
Self::Item: Ord,
Self: Sized,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 #64295)
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 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>,iter_order_by #64295)
Iterator with those of another with respect to the specified comparison function. Read more
fn eq<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
Self: Sized,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 #64295)
Iterator are equal to those of another with respect to the specified equality function. Read more
fn ne<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialEq<<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 more
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 more
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 more
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) -> bool,fn is_sorted_by_key<F, K>(self, f: F) -> boolwhere
Self: Sized,
F: FnMut(Self::Item) -> K,
K: PartialOrd,impl<Idx> PartialEq for RangeInclusive<Idx>where
Idx: PartialEq,fn eq(&self, other: &RangeInclusive<Idx>) -> bool
self and other values to be equal, and is used by ==.fn ne(&self, other: &Rhs) -> bool
!=. The default implementation is almost always sufficient, and should not be overridden without very good reason.impl<T> RangeBounds<T> for RangeInclusive<&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::Included(end)).
fn start_bound(&self) -> Bound<&T>
fn end_bound(&self) -> Bound<&T>
fn contains<U>(&self, item: &U) -> boolwhere
T: PartialOrd<U>,
U: PartialOrd<T> + ?Sized,fn is_empty(&self) -> boolwhere
T: PartialOrd,range_bounds_is_empty #137300)
true if the range contains no items. One-sided ranges (RangeFrom, etc) always return false. Read more
impl<T> RangeBounds<T> for RangeInclusive<T>
fn start_bound(&self) -> Bound<&T>
fn end_bound(&self) -> Bound<&T>
fn contains<U>(&self, item: &U) -> boolwhere
T: PartialOrd<U>,
U: PartialOrd<T> + ?Sized,fn is_empty(&self) -> boolwhere
T: PartialOrd,range_bounds_is_empty #137300)
true if the range contains no items. One-sided ranges (RangeFrom, etc) always return false. Read more
impl<T> SliceIndex<[T]> for RangeInclusive<usize>The methods index and index_mut panic if:
usize::MAX ortype Output = [T]
fn get(self, slice: &[T]) -> Option<&[T]>
slice_index_methods)
fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>
slice_index_methods)
unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T]
slice_index_methods)
unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T]
slice_index_methods)
fn index(self, slice: &[T]) -> &[T]
slice_index_methods)
fn index_mut(self, slice: &mut [T]) -> &mut [T]
slice_index_methods)
impl SliceIndex<ByteStr> for RangeInclusive<usize>
type Output = ByteStr
fn get(
self,
slice: &ByteStr,
) -> Option<&<RangeInclusive<usize> as SliceIndex<ByteStr>>::Output>slice_index_methods)
fn get_mut(
self,
slice: &mut ByteStr,
) -> Option<&mut <RangeInclusive<usize> as SliceIndex<ByteStr>>::Output>slice_index_methods)
unsafe fn get_unchecked(
self,
slice: *const ByteStr,
) -> *const <RangeInclusive<usize> as SliceIndex<ByteStr>>::Outputslice_index_methods)
unsafe fn get_unchecked_mut(
self,
slice: *mut ByteStr,
) -> *mut <RangeInclusive<usize> as SliceIndex<ByteStr>>::Outputslice_index_methods)
fn index(
self,
slice: &ByteStr,
) -> &<RangeInclusive<usize> as SliceIndex<ByteStr>>::Output ⓘslice_index_methods)
fn index_mut(
self,
slice: &mut ByteStr,
) -> &mut <RangeInclusive<usize> as SliceIndex<ByteStr>>::Output ⓘslice_index_methods)
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 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.
type Output = str
fn get(
self,
slice: &str,
) -> Option<&<RangeInclusive<usize> as SliceIndex<str>>::Output>slice_index_methods)
fn get_mut(
self,
slice: &mut str,
) -> Option<&mut <RangeInclusive<usize> as SliceIndex<str>>::Output>slice_index_methods)
unsafe fn get_unchecked(
self,
slice: *const str,
) -> *const <RangeInclusive<usize> as SliceIndex<str>>::Outputslice_index_methods)
unsafe fn get_unchecked_mut(
self,
slice: *mut str,
) -> *mut <RangeInclusive<usize> as SliceIndex<str>>::Outputslice_index_methods)
fn index(
self,
slice: &str,
) -> &<RangeInclusive<usize> as SliceIndex<str>>::Output ⓘslice_index_methods)
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,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,impl<T> Any for Twhere
T: 'static + ?Sized,impl<T> Borrow<T> for Twhere
T: ?Sized,impl<T> BorrowMut<T> for Twhere
T: ?Sized,impl<T> CloneToUninit for Twhere
T: Clone,unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit #126799)
impl<T> From<T> for T
fn from(t: T) -> T
Returns the argument unchanged.
impl<T, U> Into<U> for Twhere
U: From<T>,fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of From<T> for U chooses to do.
impl<I> IntoIterator for Iwhere
I: Iterator,type Item = <I as Iterator>::Item
type IntoIter = I
fn into_iter(self) -> I
impl<T> ToOwned for Twhere
T: Clone,type Owned = T
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)
impl<T, U> TryFrom<U> for Twhere
U: Into<T>,type Error = Infallible
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto<U> for Twhere
U: TryFrom<T>,
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/range/legacy/struct.RangeInclusive.html