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(Logic other) {
if (runtimeType != other.runtimeType) {
final a = runtimeType.toString();
final b = other.runtimeType.toString();
return a.compareTo(b);
} else {
final a = args;
final b = other.args;
// The following is equivalent to tuple comparison in Python
for (int i = 0; i < min(a.length, b.length); i++) {
final cmp = a[i].compareTo(b[i]);
if (cmp != 0) {
return cmp;
}
}
return a.length.compareTo(b.length);
}
}