compareTo method

  1. @override
int compareTo(
  1. T other
)
override

Compares this object to another object.

Returns a value like a Comparator when comparing this to other. That is, it returns a negative integer if this is ordered before other, a positive integer if this is ordered after other, and zero if this and other are ordered together.

The other argument must be a value that is comparable to this object.

Implementation

@override
int compareTo(T other) {
  if (runtimeType == other.runtimeType) {
    return value.compareTo(other.value);
  }

  if (_isShiftedValue || other._isShiftedValue) {
    final otherValue = other._clone.convertTo(this).value;
    final currentValue = _clone.value;
    return currentValue.compareTo(otherValue);
  } else {
    final otherConvertTo = other._clone.convertTo(anchor);
    final currentConvertTo = _clone.convertTo(anchor);
    return currentConvertTo.value.compareTo(otherConvertTo.value);
  }
}