This repository has been archived on 2024-06-24. You can view files and clone it, but cannot push or open issues or pull requests.
huia/packages/core/ordering.huia
2018-09-08 21:08:53 +12:00

37 lines
811 B
Text

deftrait Ordering as: ->
# This trait defines ordering comparisons for types.
def <Ordering.Result> compare_with other: Any
def equals? other: Any, as: ->
match compare_with(other),
Ordering.Equal: true,
Any: false
end
def greater_than? other: Any, as: ->
match compare_with(other),
Ordering.Greater: true,
Any: false
end
def greater_than_or_equal_to? other: Any, as: ->
match compare_with(other),
Ordering.Greater: true,
Ordering.Equal: true,
Any: false
end
def less_than? other: Any, as: ->
match compare_with(other),
Ordering.Less: true,
_: false
end
def less_than_or_equal_to? other: Any, as: ->
match compare_with(other),
Ordering.Less: true,
Ordering.Equal: true,
Any: false
end
end