Create an Enum from a list of String and variants
type Fruit
= Apple
| Banana
| Mango
fruit : Enum Fruit
fruit =
Enum.create
[ ( "Apple", Apple )
, ( "Banana", Banana )
, ( "Mango", Mango )
]Create an Enum from an iterator function and a starting variant.
It may look unusual, but the benefit is that the case statement helps ensure that you don't forget a variant.
type Fruit
= Apple
| Banana
| Mango
fruit : Enum Fruit
fruit =
Enum.fromIterator
(\a ->
case a of
Apple ->
( "Banana", Banana )
Banana ->
( "Mango", Mango )
Mango ->
( "Apple", Apple )
)
AppleEnums based on Int instead of String
Create an EnumInt from a list of Int and variants
type Fruit
= Apple
| Banana
| Mango
fruit : EnumInt Fruit
fruit =
Enum.createInt
[ ( 1, Apple )
, ( 2, Banana )
, ( 3, Mango )
]Create an EnumInt from an iterator function and a starting variant
type Fruit
= Apple
| Banana
| Mango
enum : EnumInt Fruit
enum =
Enum.fromIntIterator
(\a ->
case a of
Mango ->
( 1, Apple )
Apple ->
( 2, Banana )
Banana ->
( 3, Mango )
)
Apple
An
Enumis a record containing common helper functions