| Index: lib/src/utils.dart
|
| diff --git a/lib/src/utils.dart b/lib/src/utils.dart
|
| index 6493ddac51caa46fcb96e1aa45cc88dfe29810ad..efe105abed966f9f65f77fdc2d1bd876a092d512 100644
|
| --- a/lib/src/utils.dart
|
| +++ b/lib/src/utils.dart
|
| @@ -13,17 +13,46 @@ bool areAdjacent(VersionRange range1, VersionRange range2) {
|
| (!range1.includeMax && range2.includeMin);
|
| }
|
|
|
| -/// A [Comparator] that compares the maximum versions of [range1] and [range2].
|
| -int compareMax(VersionRange range1, VersionRange range2) {
|
| - if (range1.max == null) {
|
| - if (range2.max == null) return 0;
|
| - return 1;
|
| - } else if (range2.max == null) {
|
| - return -1;
|
| - }
|
| -
|
| - var result = range1.max.compareTo(range2.max);
|
| - if (result != 0) return result;
|
| - if (range1.includeMax != range2.includeMax) return range1.includeMax ? 1 : -1;
|
| - return 0;
|
| +/// Returns whether [range1] allows lower versions than [range2].
|
| +bool allowsLower(VersionRange range1, VersionRange range2) {
|
| + if (range1.min == null) return range2.min != null;
|
| + if (range2.min == null) return false;
|
| +
|
| + var comparison = range1.min.compareTo(range2.min);
|
| + if (comparison == -1) return true;
|
| + if (comparison == 1) return false;
|
| + return range1.includeMin && !range2.includeMin;
|
| +}
|
| +
|
| +/// Returns whether [range1] allows higher versions than [range2].
|
| +bool allowsHigher(VersionRange range1, VersionRange range2) {
|
| + if (range1.max == null) return range2.max != null;
|
| + if (range2.max == null) return false;
|
| +
|
| + var comparison = range1.max.compareTo(range2.max);
|
| + if (comparison == 1) return true;
|
| + if (comparison == -1) return false;
|
| + return range1.includeMax && !range2.includeMax;
|
| +}
|
| +
|
| +/// Returns whether [range1] allows only versions lower than those allowed by
|
| +/// [range2].
|
| +bool strictlyLower(VersionRange range1, VersionRange range2) {
|
| + if (range1.max == null || range2.min == null) return false;
|
| +
|
| + var comparison = range1.max.compareTo(range2.min);
|
| + if (comparison == -1) return true;
|
| + if (comparison == 1) return false;
|
| + return !range1.includeMax || !range2.includeMin;
|
| +}
|
| +
|
| +/// Returns whether [range1] allows only versions higher than those allowed by
|
| +/// [range2].
|
| +bool strictlyHigher(VersionRange range1, VersionRange range2) {
|
| + if (range1.min == null || range2.max == null) return false;
|
| +
|
| + var comparison = range1.min.compareTo(range2.max);
|
| + if (comparison == 1) return true;
|
| + if (comparison == -1) return false;
|
| + return !range1.includeMin || !range2.includeMax;
|
| }
|
|
|