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.
Auto Trait Implementations
impl RefUnwindSafe for RangeDisjointimpl Send for RangeDisjointimpl Sync for RangeDisjointimpl Unpin for RangeDisjointimpl UnwindSafe for RangeDisjoint