Skip to main content

OverlapsRange

Trait OverlapsRange 

Source
pub trait OverlapsRange<T, C: Collate> {
    // Required method
    fn overlaps(&self, other: &T, collator: &C) -> Overlap;

    // Provided methods
    fn contains(&self, other: &T, collator: &C) -> bool { ... }
    fn contains_partial(&self, other: &T, collator: &C) -> bool { ... }
}
Expand description

Range-range comparison methods

Required Methods§

Source

fn overlaps(&self, other: &T, collator: &C) -> Overlap

Check whether self overlaps other according to the given collator.

Examples:

use collate::{Collate, Collator, Overlap, OverlapsRange};
let collator = Collator::default();
assert_eq!((..1).overlaps(&(2..5), &collator), Overlap::Less);
assert_eq!((0..1).overlaps(&(0..1), &collator), Overlap::Equal);
assert_eq!((1..4).overlaps(&(4..5), &collator), Overlap::Less);
assert_eq!((4..5).overlaps(&(1..4), &collator), Overlap::Greater);
assert_eq!((3..5).overlaps(&(1..7), &collator), Overlap::Narrow);
assert_eq!((1..).overlaps(&(3..5), &collator), Overlap::Wide);
assert_eq!((1..4).overlaps(&(3..), &collator), Overlap::WideLess);
assert_eq!((3..5).overlaps(&(..4), &collator), Overlap::WideGreater);

Provided Methods§

Source

fn contains(&self, other: &T, collator: &C) -> bool

Check whether other lies entirely within self according to the given collator.

Source

fn contains_partial(&self, other: &T, collator: &C) -> bool

Check whether other lies partially within self according to the given collator.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<'a, T, C> OverlapsRange<(&'a Bound<T>, &'a Bound<T>), C> for (&'a Bound<T>, &'a Bound<T>)
where C: CollateRef<T>,

Source§

fn overlaps( &self, other: &(&'a Bound<T>, &'a Bound<T>), collator: &C, ) -> Overlap

Source§

impl<C: Collate> OverlapsRange<(Bound<<C as Collate>::Value>, Bound<<C as Collate>::Value>), C> for (Bound<C::Value>, Bound<C::Value>)

Source§

fn overlaps( &self, other: &(Bound<C::Value>, Bound<C::Value>), collator: &C, ) -> Overlap

Source§

impl<C: Collate> OverlapsRange<(Bound<<C as Collate>::Value>, Bound<<C as Collate>::Value>), C> for Range<C::Value>

Source§

fn overlaps( &self, other: &(Bound<C::Value>, Bound<C::Value>), collator: &C, ) -> Overlap

Source§

impl<C: Collate> OverlapsRange<(Bound<<C as Collate>::Value>, Bound<<C as Collate>::Value>), C> for RangeFrom<C::Value>

Source§

fn overlaps( &self, other: &(Bound<C::Value>, Bound<C::Value>), collator: &C, ) -> Overlap

Source§

impl<C: Collate> OverlapsRange<(Bound<<C as Collate>::Value>, Bound<<C as Collate>::Value>), C> for RangeFull

Source§

fn overlaps( &self, other: &(Bound<C::Value>, Bound<C::Value>), collator: &C, ) -> Overlap

Source§

impl<C: Collate> OverlapsRange<(Bound<<C as Collate>::Value>, Bound<<C as Collate>::Value>), C> for RangeTo<C::Value>

Source§

fn overlaps( &self, other: &(Bound<C::Value>, Bound<C::Value>), collator: &C, ) -> Overlap

Source§

impl<C: Collate> OverlapsRange<Range<<C as Collate>::Value>, C> for (Bound<C::Value>, Bound<C::Value>)

Source§

fn overlaps(&self, other: &Range<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<Range<<C as Collate>::Value>, C> for Range<C::Value>

Source§

fn overlaps(&self, other: &Range<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<Range<<C as Collate>::Value>, C> for RangeFrom<C::Value>

Source§

fn overlaps(&self, other: &Range<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<Range<<C as Collate>::Value>, C> for RangeFull

Source§

fn overlaps(&self, other: &Range<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<Range<<C as Collate>::Value>, C> for RangeTo<C::Value>

Source§

fn overlaps(&self, other: &Range<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeFrom<<C as Collate>::Value>, C> for (Bound<C::Value>, Bound<C::Value>)

Source§

fn overlaps(&self, other: &RangeFrom<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeFrom<<C as Collate>::Value>, C> for Range<C::Value>

Source§

fn overlaps(&self, other: &RangeFrom<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeFrom<<C as Collate>::Value>, C> for RangeFrom<C::Value>

Source§

fn overlaps(&self, other: &RangeFrom<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeFrom<<C as Collate>::Value>, C> for RangeFull

Source§

fn overlaps(&self, other: &RangeFrom<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeFrom<<C as Collate>::Value>, C> for RangeTo<C::Value>

Source§

fn overlaps(&self, other: &RangeFrom<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeFull, C> for (Bound<C::Value>, Bound<C::Value>)

Source§

fn overlaps(&self, other: &RangeFull, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeFull, C> for Range<C::Value>

Source§

fn overlaps(&self, other: &RangeFull, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeFull, C> for RangeFrom<C::Value>

Source§

fn overlaps(&self, other: &RangeFull, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeFull, C> for RangeFull

Source§

fn overlaps(&self, other: &RangeFull, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeFull, C> for RangeTo<C::Value>

Source§

fn overlaps(&self, other: &RangeFull, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeInclusive<<C as Collate>::Value>, C> for (Bound<C::Value>, Bound<C::Value>)

Source§

fn overlaps(&self, other: &RangeInclusive<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeInclusive<<C as Collate>::Value>, C> for Range<C::Value>

Source§

fn overlaps(&self, other: &RangeInclusive<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeInclusive<<C as Collate>::Value>, C> for RangeFrom<C::Value>

Source§

fn overlaps(&self, other: &RangeInclusive<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeInclusive<<C as Collate>::Value>, C> for RangeFull

Source§

fn overlaps(&self, other: &RangeInclusive<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeInclusive<<C as Collate>::Value>, C> for RangeTo<C::Value>

Source§

fn overlaps(&self, other: &RangeInclusive<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeTo<<C as Collate>::Value>, C> for (Bound<C::Value>, Bound<C::Value>)

Source§

fn overlaps(&self, other: &RangeTo<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeTo<<C as Collate>::Value>, C> for Range<C::Value>

Source§

fn overlaps(&self, other: &RangeTo<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeTo<<C as Collate>::Value>, C> for RangeFrom<C::Value>

Source§

fn overlaps(&self, other: &RangeTo<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeTo<<C as Collate>::Value>, C> for RangeFull

Source§

fn overlaps(&self, other: &RangeTo<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeTo<<C as Collate>::Value>, C> for RangeTo<C::Value>

Source§

fn overlaps(&self, other: &RangeTo<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeToInclusive<<C as Collate>::Value>, C> for (Bound<C::Value>, Bound<C::Value>)

Source§

fn overlaps(&self, other: &RangeToInclusive<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeToInclusive<<C as Collate>::Value>, C> for Range<C::Value>

Source§

fn overlaps(&self, other: &RangeToInclusive<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeToInclusive<<C as Collate>::Value>, C> for RangeFrom<C::Value>

Source§

fn overlaps(&self, other: &RangeToInclusive<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeToInclusive<<C as Collate>::Value>, C> for RangeFull

Source§

fn overlaps(&self, other: &RangeToInclusive<C::Value>, collator: &C) -> Overlap

Source§

impl<C: Collate> OverlapsRange<RangeToInclusive<<C as Collate>::Value>, C> for RangeTo<C::Value>

Source§

fn overlaps(&self, other: &RangeToInclusive<C::Value>, collator: &C) -> Overlap

Implementors§