lib/standard: introduce ReserveDefaultComparator
authorAlexandre Terrasa <alexandre@moz-code.org>
Thu, 23 Apr 2015 18:55:19 +0000 (14:55 -0400)
committerAlexandre Terrasa <alexandre@moz-code.org>
Thu, 23 Apr 2015 19:00:31 +0000 (15:00 -0400)
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

lib/standard/collection/sorter.nit

index 00c45a3..ca16460 100644 (file)
@@ -334,5 +334,25 @@ class DefaultComparator
        redef fun compare(a, b) do return a <=> b
 end
 
+# This comparator uses the operator `<=>` to compare objects in a reverse order.
+#
+# See `default_reverse_comparator` for an easy-to-use general stateless reverse
+# default comparator.
+class DefaultReverseComparator
+       super Comparator
+
+       redef type COMPARED: Comparable
+
+       # Returns `b <=> a`.
+       redef fun compare(a, b) do return b <=> a
+end
+
 # Easy-to-use general stateless default comparator that uses `<=>` to compare things.
 fun default_comparator: DefaultComparator do return once new DefaultComparator
+
+# Easy-to-use general stateless default reverse comparator.
+#
+# Does the same as `default_comparator` but in reverse order.
+fun default_reverse_comparator: DefaultReverseComparator do
+       return once new DefaultReverseComparator
+end