Struct core::ops::Range1.0.0[][src]

pub struct Range<Idx> {
    pub start: Idx,
    pub end: Idx,

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.


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());
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      ]); // This is a `Range`
assert_eq!(arr[1..=3], [   1, 2, 3   ]);


start: Idx

The lower bound of the range (inclusive).

end: Idx

The upper bound of the range (exclusive).


impl<Idx: PartialOrd<Idx>> Range<Idx>[src]

pub fn contains<U: ?Sized>(&self, item: &U) -> bool where
    Idx: PartialOrd<U>,
    U: PartialOrd<Idx>, 

Returns true if item is contained in the range.


assert!( (3..5).contains(&3));
assert!( (3..5).contains(&4));


assert!( (0.0..1.0).contains(&0.5));

pub fn is_empty(&self) -> bool1.47.0[src]

Returns true if the range contains no items.


assert!( (3..3).is_empty());
assert!( (3..2).is_empty());

The range is empty if either side is incomparable:

assert!( (3.0..f32::NAN).is_empty());
assert!( (f32::NAN..5.0).is_empty());

Trait Implementations

impl<Idx: Clone> Clone for Range<Idx>[src]

impl<Idx: Debug> Debug for Range<Idx>[src]

impl<Idx: Default> Default for Range<Idx>[src]

impl<A: Step> DoubleEndedIterator for Range<A>[src]

impl ExactSizeIterator for Range<usize>[src]

impl ExactSizeIterator for Range<u8>[src]

impl ExactSizeIterator for Range<u16>[src]

impl ExactSizeIterator for Range<isize>[src]

impl ExactSizeIterator for Range<i8>[src]

impl ExactSizeIterator for Range<i16>[src]

impl ExactSizeIterator for Range<u32>[src]

impl ExactSizeIterator for Range<i32>[src]

impl<Idx: Hash> Hash for Range<Idx>[src]

impl<A: Step> Iterator for Range<A>[src]

type Item = A

The type of the elements being iterated over.

impl<Idx: PartialEq> PartialEq<Range<Idx>> for Range<Idx>[src]

impl<T> RangeBounds<T> for Range<T>1.28.0[src]

impl<T> RangeBounds<T> for Range<&T>1.28.0[src]

impl<T> SliceIndex<[T]> for Range<usize>1.15.0[src]

type Output = [T]

The output type returned by methods.

impl SliceIndex<str> for Range<usize>1.20.0[src]

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 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.


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];

type Output = str

The output type returned by methods.

impl<Idx: Eq> Eq for Range<Idx>[src]

impl<A: Step> FusedIterator for Range<A>1.26.0[src]

impl<Idx> StructuralEq for Range<Idx>[src]

impl<Idx> StructuralPartialEq for Range<Idx>[src]

impl<A: Step> TrustedLen for Range<A>[src]

Auto Trait Implementations

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

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized

impl<T> Borrow<T> for T where
    T: ?Sized

impl<T> BorrowMut<T> for T where
    T: ?Sized

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.