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
impl Eq for RangeIntersect
impl StructuralPartialEq for RangeIntersect
Auto Trait Implementations§
impl Freeze for RangeIntersect
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