AsRange

Trait AsRange 

Source
pub trait AsRange: Sized {
    type Item: Measure + PartialEnum;

    // Required methods
    fn start(&self) -> Bound<&Self::Item>;
    fn end(&self) -> Bound<&Self::Item>;

    // Provided methods
    fn is_empty(&self) -> bool { ... }
    fn intersects<R: AsRange>(&self, other: &R) -> bool
       where Self::Item: PartialOrd<R::Item> + Measure<R::Item> { ... }
    fn connected_to<R: AsRange>(&self, other: &R) -> bool
       where Self::Item: PartialOrd<R::Item> + Measure<R::Item> { ... }
    fn intersected_with<'a, R: AsRange<Item = Self::Item>>(
        &'a self,
        other: &'a R,
    ) -> AnyRange<&'a Self::Item>
       where Self::Item: PartialOrd + Measure { ... }
    fn without<'a, R: AsRange<Item = Self::Item>>(
        &'a self,
        other: &'a R,
    ) -> Difference<&'a Self::Item>
       where Self::Item: PartialOrd + Measure { ... }
    fn product<'a, R: AsRange<Item = Self::Item>>(
        &'a self,
        other: &'a R,
    ) -> Product<&'a Self::Item>
       where Self::Item: PartialOrd + Measure { ... }
}
Expand description

Types that can be interpreted as ranges.

Required Associated Types§

Source

type Item: Measure + PartialEnum

Type of the elements of the range.

Required Methods§

Source

fn start(&self) -> Bound<&Self::Item>

Start bound of the range.

Source

fn end(&self) -> Bound<&Self::Item>

End bound of the range.

Provided Methods§

Source

fn is_empty(&self) -> bool

Source

fn intersects<R: AsRange>(&self, other: &R) -> bool
where Self::Item: PartialOrd<R::Item> + Measure<R::Item>,

Source

fn connected_to<R: AsRange>(&self, other: &R) -> bool
where Self::Item: PartialOrd<R::Item> + Measure<R::Item>,

Source

fn intersected_with<'a, R: AsRange<Item = Self::Item>>( &'a self, other: &'a R, ) -> AnyRange<&'a Self::Item>
where Self::Item: PartialOrd + Measure,

Source

fn without<'a, R: AsRange<Item = Self::Item>>( &'a self, other: &'a R, ) -> Difference<&'a Self::Item>
where Self::Item: PartialOrd + Measure,

Source

fn product<'a, R: AsRange<Item = Self::Item>>( &'a self, other: &'a R, ) -> Product<&'a Self::Item>
where Self::Item: PartialOrd + Measure,

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.

Implementations on Foreign Types§

Source§

impl AsRange for char

Source§

type Item = char

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Source§

impl AsRange for f32

Source§

type Item = f32

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Source§

impl AsRange for f64

Source§

type Item = f64

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Source§

impl AsRange for i8

Source§

type Item = i8

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Source§

impl AsRange for i16

Source§

type Item = i16

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Source§

impl AsRange for i32

Source§

type Item = i32

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Source§

impl AsRange for i64

Source§

type Item = i64

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Source§

impl AsRange for u8

Source§

type Item = u8

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Source§

impl AsRange for u16

Source§

type Item = u16

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Source§

impl AsRange for u32

Source§

type Item = u32

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Source§

impl AsRange for u64

Source§

type Item = u64

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Source§

impl AsRange for usize

Source§

type Item = usize

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Source§

impl<T: Measure + PartialEnum> AsRange for Range<T>

Source§

type Item = T

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Source§

impl<T: Measure + PartialEnum> AsRange for RangeFrom<T>

Source§

type Item = T

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Source§

impl<T: Measure + PartialEnum> AsRange for RangeInclusive<T>

Source§

type Item = T

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Source§

impl<T: Measure + PartialEnum> AsRange for RangeTo<T>

Source§

type Item = T

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Source§

impl<T: Measure + PartialEnum> AsRange for RangeToInclusive<T>

Source§

type Item = T

Source§

fn start(&self) -> Bound<&Self::Item>

Source§

fn end(&self) -> Bound<&Self::Item>

Implementors§