# Trait std::ops::RangeBounds

1.28.0 · source ·

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

Expand description

`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§

source

#### 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
source

#### fn end_bound(&self) -> Bound<&T>

End index bound.

Returns the end value as a `Bound`.

##### Examples

    use std::ops::Bound::*;
    use std::ops::RangeBounds;

    assert_eq!((3..).end_bound(), Unbounded);
    assert_eq!((3..10).end_bound(), Excluded(&10));

Run

## Provided Methods§

1.35.0 · source

#### fn contains<U>(&self, item: &U) -> bool where T: PartialOrd<U>, U: PartialOrd<T> + ?Sized,

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

Run

## Object Safety§

This trait is not object safe.

## Implementors§

source§

### impl<'a, T> RangeBounds<T> for (Bound<&'a T>, Bound<&'a T>)where T: 'a + ?Sized,

source§

### impl<T> RangeBounds<T> for (Bound<T>, Bound<T>)

source§

### impl<T> RangeBounds<T> for Range<&T>

source§

### impl<T> RangeBounds<T> for Range<T>

source§

### impl<T> RangeBounds<T> for RangeFrom<&T>

source§

### impl<T> RangeBounds<T> for RangeFrom<T>

source§

### impl<T> RangeBounds<T> for RangeFull where T: ?Sized,

source§

### impl<T> RangeBounds<T> for RangeInclusive<&T>

source§

### impl<T> RangeBounds<T> for RangeInclusive<T>

source§

### impl<T> RangeBounds<T> for RangeTo<&T>

source§

### impl<T> RangeBounds<T> for RangeTo<T>

source§

### impl<T> RangeBounds<T> for RangeToInclusive<&T>

source§

### impl<T> RangeBounds<T> for RangeToInclusive<T>