core::ops::RangeBounds - Rust
Description: API documentation for the Rust `RangeBounds` trait in crate `core`.
Keywords: rust, rustlang, rust-lang, RangeBounds

# 1.28.0[−][src]Trait core::ops::RangeBounds

    pub trait RangeBounds<T: ?Sized> {
        fn start_bound(&self) -> Bound<&T>;
        fn end_bound(&self) -> Bound<&T>;

        fn contains<U: ?Sized>(&self, item: &U) -> bool
        where
            T: PartialOrd<U>,
            U: PartialOrd<T>,
        { ... }
    }

`RangeBounds` is implemented by Rust's built-in range types, produced by range syntax like `..`, `a..`, `..b` or `c..d`.

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

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

### `fn contains<U: ?Sized>(&self, item: &U) -> bool where
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<'a, T: ?Sized + 'a> RangeBounds<T> for (Bound<&'a T>, Bound<&'a T>)`

[src]

####

`fn start_bound(&self) -> Bound<&T>`

[src]

####

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

[src]

####

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

[src]

🔬 This is a nightly-only experimental API. (`range_contains` #32311)

recently added as per RFC

###

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

[src]

####

`fn start_bound(&self) -> Bound<&T>`

[src]

####

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

[src]

####

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

[src]

🔬 This is a nightly-only experimental API. (`range_contains` #32311)

recently added as per RFC

###

`impl<T> RangeBounds<T> for Range<T>`

[src]

####

`fn start_bound(&self) -> Bound<&T>`

[src]

####

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

[src]

####

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

[src]

🔬 This is a nightly-only experimental API. (`range_contains` #32311)

recently added as per RFC

###

`impl<T> RangeBounds<T> for RangeFrom<T>`

[src]

####

`fn start_bound(&self) -> Bound<&T>`

[src]

####

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

[src]

####

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

[src]

🔬 This is a nightly-only experimental API. (`range_contains` #32311)

recently added as per RFC

###

`impl<T> RangeBounds<T> for RangeInclusive<T>`

[src]

####

`fn start_bound(&self) -> Bound<&T>`

[src]

####

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

[src]

####

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

[src]

🔬 This is a nightly-only experimental API. (`range_contains` #32311)

recently added as per RFC

###

`impl<T> RangeBounds<T> for RangeTo<T>`

[src]

####

`fn start_bound(&self) -> Bound<&T>`

[src]

####

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

[src]

####

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

[src]

🔬 This is a nightly-only experimental API. (`range_contains` #32311)

recently added as per RFC

###

`impl<T> RangeBounds<T> for RangeToInclusive<T>`

[src]

####

`fn start_bound(&self) -> Bound<&T>`

[src]

####

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

[src]

####

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

[src]

🔬 This is a nightly-only experimental API. (`range_contains` #32311)

recently added as per RFC

###

`impl<T, '_> RangeBounds<T> for Range<&'_ T>`

[src]

####

`fn start_bound(&self) -> Bound<&T>`

[src]

####

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

[src]

####

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

[src]

🔬 This is a nightly-only experimental API. (`range_contains` #32311)

recently added as per RFC

###

`impl<T, '_> RangeBounds<T> for RangeFrom<&'_ T>`

[src]

####

`fn start_bound(&self) -> Bound<&T>`

[src]

####

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

[src]

####

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

[src]

🔬 This is a nightly-only experimental API. (`range_contains` #32311)

recently added as per RFC

###

`impl<T, '_> RangeBounds<T> for RangeInclusive<&'_ T>`

[src]

####

`fn start_bound(&self) -> Bound<&T>`

[src]

####

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

[src]

####

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

[src]

🔬 This is a nightly-only experimental API. (`range_contains` #32311)

recently added as per RFC

###

`impl<T, '_> RangeBounds<T> for RangeTo<&'_ T>`

[src]

####

`fn start_bound(&self) -> Bound<&T>`

[src]

####

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

[src]

####

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

[src]

🔬 This is a nightly-only experimental API. (`range_contains` #32311)

recently added as per RFC

###

`impl<T, '_> RangeBounds<T> for RangeToInclusive<&'_ T>`

[src]

####

`fn start_bound(&self) -> Bound<&T>`

[src]

####

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

[src]

####

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

[src]

🔬 This is a nightly-only experimental API. (`range_contains` #32311)

recently added as per RFC

###

`impl<T: ?Sized> RangeBounds<T> for RangeFull`

[src]

####

`fn start_bound(&self) -> Bound<&T>`

[src]

####

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

[src]

####

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

[src]

🔬 This is a nightly-only experimental API. (`range_contains` #32311)

recently added as per RFC

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g. `str,u8` or `String,struct:Vec,test`)