Range<T> constructor

Range<T>({
  1. Bound<T>? lowerBound,
  2. Bound<T>? upperBound,
})

Implementation

Range({
  Bound<T>? lowerBound,
  Bound<T>? upperBound,
})  : lowerBound = LowerBound.from(lowerBound),
      upperBound = UpperBound.from(upperBound) {
  assert(() {
    final _lowerBound = LowerBound.from(lowerBound);
    final _upperBound = UpperBound.from(upperBound);
    if (_lowerBound.isFinite && _upperBound.isFinite) {
      return comparator(_upperBound.value!, _lowerBound.value!) >= 0;
    } else {
      return true;
    }
  }(), 'the upper bound must be more or equal then the lower bound');
  empty = _isEmpty();
}