From 108b39aa48b3263d99af37953b864be59678b577 Mon Sep 17 00:00:00 2001 From: Alexandre Terrasa Date: Thu, 23 Apr 2015 14:55:19 -0400 Subject: [PATCH] lib/standard: introduce ReserveDefaultComparator Signed-off-by: Alexandre Terrasa --- lib/standard/collection/sorter.nit | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lib/standard/collection/sorter.nit b/lib/standard/collection/sorter.nit index 00c45a3..ca16460 100644 --- a/lib/standard/collection/sorter.nit +++ b/lib/standard/collection/sorter.nit @@ -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 -- 1.7.9.5