Enum range_set::range_compare::RangeIntersect
source · pub enum RangeIntersect {
EqualTo,
OverlapsLeft,
OverlapsRight,
ContainsFirst,
ContainsProper,
ContainsLast,
ContainedByFirst,
ContainedByProper,
ContainedByLast,
}
Expand description
Ways in which a pair of ranges (A,B)
can intersect
Variants§
EqualTo
[ A=B ]
OverlapsLeft
[ A [ ] B ]
OverlapsRight
[ B [ ] A ]
ContainsFirst
[ B ] A ]
ContainsProper
[ A [ B ] ]
ContainsLast
[ A [ B ]
ContainedByFirst
[ A ] B ]
ContainedByProper
[ [ A ] B ]
ContainedByLast
[ B [ A ]
Implementations§
source§impl RangeIntersect
impl RangeIntersect
sourcepub fn compare<T: PrimInt>(
left: &RangeInclusive<T>,
right: &RangeInclusive<T>
) -> Option<Self>
pub fn compare<T: PrimInt>( left: &RangeInclusive<T>, right: &RangeInclusive<T> ) -> Option<Self>
Test two inclusive ranges for intersection, returning None
if the
ranges are disjoint.
assert_eq!(RangeIntersect::compare (&(0..=1), &(4..=5)), None);
assert_eq!(
RangeIntersect::compare (&(0..=5), &(0..=5)),
Some (RangeIntersect::EqualTo));
assert_eq!(
RangeIntersect::compare (&(0..=5), &(1..=4)),
Some (RangeIntersect::ContainsProper));
assert_eq!(
RangeIntersect::compare (&(1..=4), &(0..=5)),
Some (RangeIntersect::ContainedByProper));
assert_eq!(
RangeIntersect::compare (&(0..=5), &(0..=3)),
Some (RangeIntersect::ContainsFirst));
assert_eq!(
RangeIntersect::compare (&(0..=5), &(4..=5)),
Some (RangeIntersect::ContainsLast));
assert_eq!(
RangeIntersect::compare (&(0..=2), &(0..=5)),
Some (RangeIntersect::ContainedByFirst));
assert_eq!(
RangeIntersect::compare (&(4..=5), &(0..=5)),
Some (RangeIntersect::ContainedByLast));
assert_eq!(
RangeIntersect::compare (&(0..=3), &(3..=5)),
Some (RangeIntersect::OverlapsLeft));
assert_eq!(
RangeIntersect::compare (&(3..=5), &(0..=3)),
Some (RangeIntersect::OverlapsRight));
Trait Implementations§
source§impl Debug for RangeIntersect
impl Debug for RangeIntersect
source§impl From<RangeIntersect> for RangeCompare
impl From<RangeIntersect> for RangeCompare
source§fn from(intersect: RangeIntersect) -> Self
fn from(intersect: RangeIntersect) -> Self
Converts to this type from the input type.
source§impl PartialEq for RangeIntersect
impl PartialEq for RangeIntersect
source§fn eq(&self, other: &RangeIntersect) -> bool
fn eq(&self, other: &RangeIntersect) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl Eq for RangeIntersect
impl StructuralEq for RangeIntersect
impl StructuralPartialEq for RangeIntersect
Auto Trait Implementations§
impl RefUnwindSafe for RangeIntersect
impl Send for RangeIntersect
impl Sync for RangeIntersect
impl Unpin for RangeIntersect
impl UnwindSafe for RangeIntersect
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more