differenceNotProperlyContained method
Return the interval with elements from this not in other; other must not be totally enclosed (properly contained) within this, which would result in two disjoint intervals instead of the single one returned by this method.
Implementation
Interval? differenceNotProperlyContained(Interval other) {
Interval? diff;
// other.a to left of this.a (or same)
if (other.startsBeforeNonDisjoint(this)) {
diff = Interval.of(max(a, other.b + 1), b);
}
// other.a to right of this.a
else if (other.startsAfterNonDisjoint(this)) {
diff = Interval.of(a, other.a - 1);
}
return diff;
}