pub trait RangeBounds<T>where
T: ?Sized,{
// Required methods
fn start_bound(&self) -> Bound<&T>;
fn end_bound(&self) -> Bound<&T>;
// Provided method
fn contains<U>(&self, item: &U) -> bool
where T: PartialOrd<U>,
U: PartialOrd<T> + ?Sized { ... }
}馃敩This is a nightly-only experimental API. (
new_range_api)Expand description
RangeBounds is implemented by Rust鈥檚 built-in range types, produced
by range syntax like .., a.., ..b, ..=c, d..e, or f..=g.
Required Methods搂
1.28.0 路 Sourcefn start_bound(&self) -> Bound<&T>
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));Provided Methods搂
1.35.0 路 Sourcefn contains<U>(&self, item: &U) -> bool
fn contains<U>(&self, item: &U) -> bool
Returns true if item is contained in the range.
搂Examples
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));Dyn Compatibility搂
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.