RangeBounds

Trait RangeBounds 

1.26.0 (const: unstable) · Source
pub trait RangeBounds<T: ?Sized> {
    // Required methods
    fn start_bound(&self) -> Bound<&T>;
    fn end_bound(&self) -> Bound<&T>;
}
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§

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

Implementors§

1.28.0 (const: unstable) · Source§

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

1.28.0 (const: unstable) · Source§

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

If you need to use this implementation where T is unsized, consider using the RangeBounds impl for a 2-tuple of Bound<&T>, i.e. replace start..end with (Bound::Included(start), Bound::Excluded(end)).

1.28.0 (const: unstable) · Source§

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

1.28.0 (const: unstable) · Source§

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

If you need to use this implementation where T is unsized, consider using the RangeBounds impl for a 2-tuple of Bound<&T>, i.e. replace start.. with (Bound::Included(start), Bound::Unbounded).

1.28.0 (const: unstable) · Source§

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

1.28.0 (const: unstable) · Source§

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

If you need to use this implementation where T is unsized, consider using the RangeBounds impl for a 2-tuple of Bound<&T>, i.e. replace start..=end with (Bound::Included(start), Bound::Included(end)).

1.28.0 (const: unstable) · Source§

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

1.28.0 (const: unstable) · Source§

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

If you need to use this implementation where T is unsized, consider using the RangeBounds impl for a 2-tuple of Bound<&T>, i.e. replace ..end with (Bound::Unbounded, Bound::Excluded(end)).

1.28.0 (const: unstable) · Source§

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

1.28.0 (const: unstable) · Source§

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

If you need to use this implementation where T is unsized, consider using the RangeBounds impl for a 2-tuple of Bound<&T>, i.e. replace ..=end with (Bound::Unbounded, Bound::Included(end)).

1.28.0 (const: unstable) · Source§

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

1.28.0 (const: unstable) · Source§

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