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.

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§