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
sourceimpl 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
sourceimpl Debug for RangeIntersect
impl Debug for RangeIntersect
sourceimpl From<RangeIntersect> for RangeCompare
impl From<RangeIntersect> for RangeCompare
sourcefn from(intersect: RangeIntersect) -> Self
fn from(intersect: RangeIntersect) -> Self
Converts to this type from the input type.
sourceimpl PartialEq<RangeIntersect> for RangeIntersect
impl PartialEq<RangeIntersect> for RangeIntersect
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more