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(TaskWithDeps other) {
const thisBeforeOther = -1;
const thisAfterOther = 1;
if (phase.isBefore(other.phase)) return thisBeforeOther;
if (phase.isAfter(other.phase)) return thisAfterOther;
if (_dependsOn.contains(other.name)) return thisAfterOther;
if (other._dependsOn.contains(name)) return thisBeforeOther;
return 0;
}