outrun/outrun-core/lib/integer.outrun

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