DiscreteRange<T> constructor

DiscreteRange<T>(
  1. T? lower,
  2. T? upper,
  3. Bounds bounds
)

Implementation

DiscreteRange(T? lower, T? upper, Bounds bounds) {
  _throwIfLowerGreaterThanUpper(lower, upper);
  final (l, lBound) = _canonicalizeLower(lower, bounds.lower);
  final (u, uBound) = _canonicalizeUpper(upper, bounds.upper);
  _lower = _lowerGreaterThanUpper(l, u) ? lower : l;
  _upper = u;
  _bounds = Bounds(lBound, uBound);
}