Skip to content

Latest commit

 

History

History
131 lines (74 loc) · 2.57 KB

enum.rst

File metadata and controls

131 lines (74 loc) · 2.57 KB

enum

.. rst-class:: mini-api

:mini:`type enum < type, sequence`
The base type of enumeration types.
:mini:`meth enum(Name₁ is Value₁, ...): enum`

Returns a new enumeration type.

let colour := enum(Red is 10, Green is 20, Blue is 30)
:> <<colour>>
colour::Red :> Red
list(colour, _ + 0) :> [Red, Green, Blue]
:mini:`meth enum(Names: string, ...): enum`

Returns a new enumeration type.

let day := enum("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
:> <<day>>
day::Wed :> Wed
day::Fri + 0 :> Fri
:mini:`meth (Enum: enum):count: integer`

Returns the size of the enumeration :mini:`Enum`.

let day := enum("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
:> <<day>>
day:count :> 7
:mini:`meth (Enum: enum):random: enum::value`
TBD
:mini:`type enum::cyclic < enum`
TBD
:mini:`type enum::interval < sequence`
A interval of enum values.
:mini:`type enum::value < integer`
An instance of an enumeration type.
:mini:`meth (Arg₁: enum::value) + (Arg₂: integer)`
TBD
:mini:`meth (Arg₁: enum::value) - (Arg₂: integer)`
TBD
:mini:`meth (Min: enum::value) .. (Max: enum::value): enum::interval`

Returns a interval of enum values. :mini:`Min` and :mini:`Max` must belong to the same enumeration.

let day := enum("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
:> <<day>>
day::Mon .. day::Fri :> <enum-interval[day]>
:mini:`meth (Arg₁: enum::value) <> (Arg₂: integer)`
TBD
:mini:`meth integer(Arg₁: enum::value)`
TBD
:mini:`meth (Arg₁: enum::value):next`
TBD
:mini:`meth (Arg₁: enum::value):prev`
TBD
:mini:`meth (Arg₁: string::buffer):append(Arg₂: enum::value)`
TBD
:mini:`meth (Arg₁: integer) + (Arg₂: enum::value)`
TBD
:mini:`meth (Arg₁: integer) <> (Arg₂: enum::value)`
TBD
:mini:`meth enum::cyclic(Name₁ is Value₁, ...): enum`

Returns a new enumeration type.

let colour := enum::cyclic(Red is 10, Green is 20, Blue is 30)
:> <<colour>>
colour::Red :> Red
list(colour, _ + 0) :> [Red, Green, Blue]
:mini:`meth enum::cyclic(Names: string, ...): enum`

Returns a new enumeration type.

let day := enum::cyclic("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
:> <<day>>
day::Wed :> Wed
day::Fri + 0 :> Fri