48 lines
1.1 KiB
Text
48 lines
1.1 KiB
Text
use AbsoluteValue
|
|
use Addition
|
|
use BitwiseAnd
|
|
use BitwiseOr
|
|
use BitwiseXor
|
|
use Boolean
|
|
use Division
|
|
use Equality
|
|
use Exponentiation
|
|
use GreaterOrEqual
|
|
use Greater
|
|
use LessOrEqual
|
|
use Less
|
|
use Modulus
|
|
use Multiplication
|
|
use Negation
|
|
use ShiftLeft
|
|
use ShiftRight
|
|
use Subtraction
|
|
|
|
```doc
|
|
# Integer
|
|
|
|
This protocol defines all the protocols and functions required for a value to masquerade as an integer.
|
|
|
|
For the concrete implementation see `Outrun.Core.Integer`.
|
|
```
|
|
protocol Integer,
|
|
requires:
|
|
AbsoluteValue + Addition + BitwiseAnd + BitwiseOr + BitwiseXor + Division +
|
|
Equality + Exponentiation + GreaterOrEqual + Greater + LessOrEqual + Less +
|
|
Modulus + Multiplication + Negation + ShiftLeft + ShiftRight + Subtraction,
|
|
as: do
|
|
```doc
|
|
Returns whether the value of `self` is greater than zero.
|
|
```
|
|
def positive?(self: Self): Boolean
|
|
|
|
```doc
|
|
Returns whether the value of `self` is zero.
|
|
```
|
|
def zero?(self: Self): Boolean
|
|
|
|
```doc
|
|
Returns whether the value of `self` is less than zero.
|
|
```
|
|
def negative?(self: Self): Boolean
|
|
end
|