outrun/lib/integer.run

34 lines
865 B
Text

```doc
# Integer
This protocol defines all the protocols required for a value to masquerade as an integer.
For the concrete implementation see `Outrun.Core.Integer`.
```
protocol Integer,
requires:
Addition + BitwiseAnd + BitwiseOr + BitwiseXor + Division + Equality +
Exponentiation + GreaterOrEqual + Greater + LessOrEqual + Less + Modulus +
Multiplication + ShiftLeft + ShiftRight + Subtraction,
as:
```doc
Computes the absolute value of `self`.
```
def abs(self: Self): Option
```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