1.28.0[−][src]Trait core::ops::RangeBounds
RangeBounds
is implemented by Rust's built-in range types, produced
by range syntax like ..
, a..
, ..b
, ..=c
, d..e
, or f..=g
.
Required methods
fn start_bound(&self) -> Bound<&T>
Start index bound.
Returns the start value as a Bound
.
Examples
use std::ops::Bound::*; use std::ops::RangeBounds; assert_eq!((..10).start_bound(), Unbounded); assert_eq!((3..10).start_bound(), Included(&3));Run
fn end_bound(&self) -> Bound<&T>
Provided methods
fn assert_len(self, len: usize) -> Range<usize>ⓘ where
Self: RangeBounds<usize>,
Self: RangeBounds<usize>,
Performs bounds-checking of this range.
The returned Range
is safe to pass to slice::get_unchecked
and
slice::get_unchecked_mut
for slices of the given length.
Panics
Panics if the range would be out of bounds.
Examples
#![feature(range_bounds_assert_len)] use std::ops::RangeBounds; let v = [10, 40, 30]; assert_eq!(1..2, (1..2).assert_len(v.len())); assert_eq!(0..2, (..2).assert_len(v.len())); assert_eq!(1..3, (1..).assert_len(v.len()));Run
Panics when Index::index
would panic:
ⓘThis example panics
#![feature(range_bounds_assert_len)] use std::ops::RangeBounds; (2..1).assert_len(3);Run
ⓘThis example panics
#![feature(range_bounds_assert_len)] use std::ops::RangeBounds; (1..4).assert_len(3);Run
ⓘThis example panics
#![feature(range_bounds_assert_len)] use std::ops::RangeBounds; (1..=usize::MAX).assert_len(3);Run
fn contains<U: ?Sized>(&self, item: &U) -> bool where
T: PartialOrd<U>,
U: PartialOrd<T>,
1.35.0
T: PartialOrd<U>,
U: PartialOrd<T>,