Enum range_set::range_compare::RangeIntersect [−][src]
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
[ A=B ]
[ A [ ] B ]
[ B [ ] A ]
[ B ] A ]
[ A [ B ] ]
[ A [ B ]
[ A ] B ]
[ [ A ] B ]
[ B [ A ]
Implementations
pub 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
Performs the conversion.
Auto Trait Implementations
impl RefUnwindSafe for RangeIntersectimpl Send for RangeIntersectimpl Sync for RangeIntersectimpl Unpin for RangeIntersectimpl UnwindSafe for RangeIntersect