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)