compareTo method
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);
}
}