rangetools 0.1.4

Extending the Rust Range structs found in std::ops
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
use crate::{
    BoundedRange, LowerBoundedRange, RangeComplement, Rangetools, UnboundedSet, UpperBoundedRange,
};

impl<T> RangeComplement<UnboundedSet<T>> for BoundedRange<T>
where
    T: Copy + Ord,
{
    fn complement(self) -> UnboundedSet<T> {
        UpperBoundedRange::new(self.start.0.flipped().into())
            .union(LowerBoundedRange::new(self.end.0.flipped().into()))
    }
}