Enum range_set::range_compare::RangeDisjoint [−][src]
pub enum RangeDisjoint {
EmptyBoth,
EmptyLhs,
EmptyRhs,
LessThanProper,
LessThanAdjacent,
GreaterThanProper,
GreaterThanAdjacent,
}Expand description
Ways in which a pair of ranges (A,B) can be disjoint
Variants
A = B = {}
A = {}
B = {}
[ A ] [ B ]
[ A ][ B ]
[ B ] [ A ]
[ 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>
Tests two inclusive ranges for disjointness, returning None if they
intersect.
assert_eq!(RangeDisjoint::compare (&(0..=5), &(0..=5)), None);
assert_eq!(
RangeDisjoint::compare (&(1..=0), &(1..=0)),
Some (RangeDisjoint::EmptyBoth));
assert_eq!(
RangeDisjoint::compare (&(1..=0), &(0..=5)),
Some (RangeDisjoint::EmptyLhs));
assert_eq!(
RangeDisjoint::compare (&(0..=5), &(1..=0)),
Some (RangeDisjoint::EmptyRhs));
assert_eq!(
RangeDisjoint::compare (&(0..=2), &(4..=5)),
Some (RangeDisjoint::LessThanProper));
assert_eq!(
RangeDisjoint::compare (&(0..=2), &(3..=5)),
Some (RangeDisjoint::LessThanAdjacent));
assert_eq!(
RangeDisjoint::compare (&(4..=5), &(0..=2)),
Some (RangeDisjoint::GreaterThanProper));
assert_eq!(
RangeDisjoint::compare (&(3..=5), &(0..=2)),
Some (RangeDisjoint::GreaterThanAdjacent));Trait Implementations
Performs the conversion.