intersection method

Range<T> intersection(
  1. Range<T> range
)

empty *

Implementation

Range<T> intersection(Range<T> range) {
  if (empty || range.empty) {
    return _createEmptyRange();
  }

  final _lowerBound = _maxBound(lowerBound, range.lowerBound);
  final _upperBound = _minBound(upperBound, range.upperBound);

  final isIntersection = _compareBounds(_upperBound, _lowerBound) > 0;
  if (isIntersection) {
    return createRange(lowerBound: _lowerBound, upperBound: _upperBound);
  } else {
    return _createEmptyRange();
  }
}