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(SemanticVersion other) {
// Compare major
if (major != other.major) return major.compareTo(other.major);
// Compare minor
if (minor != other.minor) return minor.compareTo(other.minor);
// Compare patch
if (patch != other.patch) return patch.compareTo(other.patch);
// Pre-release versions have lower precedence
if (preRelease != null && other.preRelease == null) return -1;
if (preRelease == null && other.preRelease != null) return 1;
if (preRelease != null && other.preRelease != null) {
return preRelease!.compareTo(other.preRelease!);
}
return 0;
}