1.0.0[−][src]Struct std::ops::Range
A (half-open) range bounded inclusively below and exclusively above
(start..end
).
The Range
start..end
contains all values with x >= start
and
x < end
. It is empty unless start < end
.
Examples
assert_eq!((3..5), std::ops::Range { start: 3, end: 5 }); assert_eq!(3 + 4 + 5, (3..6).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 ]); // Range assert_eq!(arr[1..=3], [ 1,2,3 ]);Run
Fields
start: Idx
The lower bound of the range (inclusive).
end: Idx
The upper bound of the range (exclusive).
Methods
impl<Idx> Range<Idx> where
Idx: PartialOrd<Idx>,
[src][−]
Idx: PartialOrd<Idx>,
pub fn contains<U>(&self, item: &U) -> bool where
Idx: PartialOrd<U>,
U: PartialOrd<Idx> + ?Sized,
1.35.0[src][−]
Idx: PartialOrd<U>,
U: PartialOrd<Idx> + ?Sized,
Returns true
if item
is contained in the range.
Examples
use std::f32; 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));Run
pub fn is_empty(&self) -> bool
[src][−]
🔬 This is a nightly-only experimental API. (range_is_empty
#48111)
recently added
Returns true
if the range contains no items.
Examples
#![feature(range_is_empty)] assert!(!(3..5).is_empty()); assert!( (3..3).is_empty()); assert!( (3..2).is_empty());Run
The range is empty if either side is incomparable:
#![feature(range_is_empty)] use std::f32::NAN; assert!(!(3.0..5.0).is_empty()); assert!( (3.0..NAN).is_empty()); assert!( (NAN..5.0).is_empty());Run
Trait Implementations
impl<'_, T> RangeBounds<T> for Range<&'_ T>
1.28.0[src][+]
impl<T> RangeBounds<T> for Range<T>
1.28.0[src][+]
impl<A> FusedIterator for Range<A> where
A: Step,
1.26.0[src]
A: Step,
impl<Idx> Hash for Range<Idx> where
Idx: Hash,
[src][+]
Idx: Hash,
impl<Idx> Eq for Range<Idx> where
Idx: Eq,
[src]
Idx: Eq,
impl<Idx> Clone for Range<Idx> where
Idx: Clone,
[src][+]
Idx: Clone,
impl<Idx> Debug for Range<Idx> where
Idx: Debug,
[src][+]
Idx: Debug,
impl TrustedLen for Range<isize>
[src]
impl TrustedLen for Range<i8>
[src]
impl TrustedLen for Range<u32>
[src]
impl TrustedLen for Range<u16>
[src]
impl TrustedLen for Range<usize>
[src]
impl TrustedLen for Range<i16>
[src]
impl TrustedLen for Range<u128>
[src]
impl TrustedLen for Range<i32>
[src]
impl TrustedLen for Range<u64>
[src]
impl TrustedLen for Range<i128>
[src]
impl TrustedLen for Range<u8>
[src]
impl TrustedLen for Range<i64>
[src]
impl<A> DoubleEndedIterator for Range<A> where
A: Step,
[src][+]
A: Step,
impl<Idx> PartialEq<Range<Idx>> for Range<Idx> where
Idx: PartialEq<Idx>,
[src][+]
Idx: PartialEq<Idx>,
impl<T> SliceIndex<[T]> for Range<usize>
1.15.0[src][+]
impl SliceIndex<str> for Range<usize>
1.20.0[src][+]
type Output = str
fn get(self, slice: &str) -> Option<&<Range<usize> as SliceIndex<str>>::Output>
[src][−]
fn get_mut(
self,
slice: &mut str
) -> Option<&mut <Range<usize> as SliceIndex<str>>::Output>
[src][−]
self,
slice: &mut str
) -> Option<&mut <Range<usize> as SliceIndex<str>>::Output>
ⓘImportant traits for Range<A>unsafe fn get_unchecked(
self,
slice: &str
) -> &<Range<usize> as SliceIndex<str>>::Output
[src][−]
ⓘImportant traits for Range<A>
self,
slice: &str
) -> &<Range<usize> as SliceIndex<str>>::Output
ⓘImportant traits for Range<A>unsafe fn get_unchecked_mut(
self,
slice: &mut str
) -> &mut <Range<usize> as SliceIndex<str>>::Output
[src][−]
ⓘImportant traits for Range<A>
self,
slice: &mut str
) -> &mut <Range<usize> as SliceIndex<str>>::Output
ⓘImportant traits for Range<A>fn index(self, slice: &str) -> &<Range<usize> as SliceIndex<str>>::Output
[src][−]
ⓘImportant traits for Range<A>
ⓘImportant traits for Range<A>fn index_mut(
self,
slice: &mut str
) -> &mut <Range<usize> as SliceIndex<str>>::Output
[src][−]
ⓘImportant traits for Range<A>
self,
slice: &mut str
) -> &mut <Range<usize> as SliceIndex<str>>::Output
impl<A> Iterator for Range<A> where
A: Step,
[src][+]
A: Step,
impl ExactSizeIterator for Range<u16>
[src][+]
impl ExactSizeIterator for Range<u32>
[src][+]
impl ExactSizeIterator for Range<u8>
[src][+]
impl ExactSizeIterator for Range<i16>
[src][+]
impl ExactSizeIterator for Range<usize>
[src][+]
impl ExactSizeIterator for Range<i32>
[src][+]
impl ExactSizeIterator for Range<i8>
[src][+]
impl ExactSizeIterator for Range<isize>
[src][+]
impl IndexMut<Range<usize>> for String
1.3.0[src][+]
impl Index<Range<usize>> for String
[src][+]
Auto Trait Implementations
Blanket Implementations
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<I> IntoIterator for I where
I: Iterator,
[src][+]
I: Iterator,
impl<T, U> Into<U> for T where
U: From<T>,
[src][+]
U: From<T>,
impl<T> From<T> for T
[src][+]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,
impl<T> Borrow<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src][+]
T: 'static + ?Sized,
impl<T> ToOwned for T where
T: Clone,
[src][+]
T: Clone,