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
James Harton 96677aa499 Start writing some ideas for how things might work in Huia.
I know this is dumb, but it's the best way for be to crystalise my thoughts about how this will work.
2018-08-29 12:46:07 +12:00

39 lines
830 B
Text

deftrait Ordering, as: ->
typedoc """
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