|
# Copyright (c) 2023 Yuki Kimoto
# MIT License
class Comparator : interface_t {
version_from SPVM;
use Comparable;
required method : int ($x1 : object, $x2 : object);
# Class Methods
static method default_comparator : Comparator () {
my $default_comparator = method : int ($object1 : Comparable, $object2 : Comparable) {
my $cmp = 0;
if ($object1 && $object2) {
$cmp = $object1->cmp($object1, $object2);
}
elsif ($object1) {
$cmp = 1;
}
elsif ($object2 ) {
$cmp = -1;
}
return $cmp;
};
return $default_comparator;
}
}
|