Trait core::ops::RangeBounds [−][src]
pub trait RangeBounds<T: ?Sized> { fn start(&self) -> Bound<&T>; fn end(&self) -> Bound<&T>; fn contains<U: ?Sized>(&self, item: &U) -> bool
where
T: PartialOrd<U>,
U: PartialOrd<T>, { ... } }
🔬 This is a nightly-only experimental API. (collections_range #30877)
might be replaced with Into<_> and a type containing two Bound values
RangeBounds is implemented by Rust's built-in range types, produced
by range syntax like .., a.., ..b or c..d.
Required Methods
fn start(&self) -> Bound<&T>
🔬 This is a nightly-only experimental API. (collections_range #30877)
might be replaced with Into<_> and a type containing two Bound values
Start index bound.
Returns the start value as a Bound.
Examples
#![feature(collections_range)] use std::ops::Bound::*; use std::ops::RangeBounds; assert_eq!((..10).start(), Unbounded); assert_eq!((3..10).start(), Included(&3));Run
fn end(&self) -> Bound<&T>
🔬 This is a nightly-only experimental API. (collections_range #30877)
might be replaced with Into<_> and a type containing two Bound values
Provided Methods
fn contains<U: ?Sized>(&self, item: &U) -> bool where
T: PartialOrd<U>,
U: PartialOrd<T>,
T: PartialOrd<U>,
U: PartialOrd<T>,
🔬 This is a nightly-only experimental API. (range_contains #32311)
recently added as per RFC
Returns true if item is contained in the range.
Examples
#![feature(range_contains)] use std::f32; assert!( (3..5).contains(&4)); assert!(!(3..5).contains(&2)); 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
Implementors
impl<T: ?Sized> RangeBounds<T> for RangeFullimpl<T> RangeBounds<T> for RangeFrom<T>impl<T> RangeBounds<T> for RangeTo<T>impl<T> RangeBounds<T> for Range<T>impl<T> RangeBounds<T> for RangeInclusive<T>impl<T> RangeBounds<T> for RangeToInclusive<T>impl<T> RangeBounds<T> for (Bound<T>, Bound<T>)impl<'a, T: ?Sized + 'a> RangeBounds<T> for (Bound<&'a T>, Bound<&'a T>)impl<'a, T> RangeBounds<T> for RangeFrom<&'a T>impl<'a, T> RangeBounds<T> for RangeTo<&'a T>impl<'a, T> RangeBounds<T> for Range<&'a T>impl<'a, T> RangeBounds<T> for RangeInclusive<&'a T>impl<'a, T> RangeBounds<T> for RangeToInclusive<&'a T>