42 lines
971 B
Text
42 lines
971 B
Text
deftrait Ordering as: ->
|
|
# This trait defines ordering comparisons for types.
|
|
|
|
def <Ordering::Result> compare_with other: Any
|
|
|
|
def equals? other: Any, as: ->
|
|
Huia::Primitive.match(self.compare_with(other), {
|
|
Ordering::Equal: true,
|
|
Any: false
|
|
})
|
|
end
|
|
|
|
def greater_than? other: Any, as: ->
|
|
Huia::Primitive.match(self.compare_with(other), {
|
|
Ordering::Greater: true,
|
|
Any: false
|
|
})
|
|
end
|
|
|
|
def greater_than_or_equal_to? other: Any, as: ->
|
|
Huia::Primitive.match(self.compare_with(other), {
|
|
Ordering::Greater: true,
|
|
Ordering::Equal: true,
|
|
Any: false
|
|
})
|
|
end
|
|
|
|
def less_than? other: Any, as: ->
|
|
Huia::Primitive.match(self.compare_with(other), {
|
|
Ordering::Less: true,
|
|
Any: false
|
|
})
|
|
end
|
|
|
|
def less_than_or_equal_to? other: Any, as: ->
|
|
Huia::Primitive.match(self.compare_with(other), {
|
|
Ordering::Less: true,
|
|
Ordering::Equal: true,
|
|
Any: false
|
|
})
|
|
end
|
|
end
|