32. Enumeration traits
The enum_trait module implements typeinfo traits for the enumerations.
All functions and symbols are in “enum_trait” module, use require to get access to it.
require daslib/enum_trait
32.1. Typeinfo macros
- enum_names
Implements typeinfo(enum_names EnumOrEnumType) which returns array of strings with enumValue names.
- enum_length
Implements typeinfo(enum_length EnumOrEnumType) which returns total number of elements in enumeration.
32.2. Handled enumerations
- string_to_enum
Enumeration annotation which implements string constructor for enumeration.
32.3. Uncategorized
- string(arg: auto): auto
- converts enum value to string
usage: let s = string(EnumValue)
- Arguments:
arg : auto
- to_enum(ent: auto(EnumT); name: string): EnumT
- converts string to enum value, panics if not found
usage: let e = to_enum(type<EnumType>,”EnumValueName”)
- Arguments:
ent : auto(EnumT)
name : string
- to_enum(ent: auto(EnumT); name: string; defaultValue: EnumT): EnumT
- converts string to enum value, returns defaultValue if not found
usage: let e = to_enum(type<EnumType>,”EnumValueName”, EnumType.DefaultValue)
- Arguments:
ent : auto(EnumT)
name : string
defaultValue : EnumT
- enum_to_table(ent: auto(EnumT)): table<string, EnumT>
- converts enum type to array of tuples (name, value)
usage: let t = enum_to_table(type<EnumType>)
- Arguments:
ent : auto(EnumT)