compareTo method

  1. @override
int compareTo(
  1. SpanMarker 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(SpanMarker other) {
  final offsetDiff = offset - other.offset;
  if (offsetDiff != 0) {
    return offsetDiff;
  }
  if (markerType != other.markerType) {
    // Enforce that start markers come before end, even within the same index. This makes it much easier to process
    // the spans linearly, such as in [collapseSpans].
    return isStart ? -1 : 1;
  }
  return 0;
}