Wyliczenia enum
mogą w ramach swoich elementów zawierać inne typy danych. Przypomina to typ unii (ang. union) znany z języka C.
Podczas stosowania wyrażenia match
na wyliczeniu enum
, dostajemy możliwość przypisania wartości przechowywanych wewnątrz wyliczenia do tymczasowych zmiennych.
Kilka rzeczy na które warto zwrócić uwagę jeżeli chodzi o reprezentację wyliczeń w pamięci komputera:
enum
w pamięci będzie wynosić tyle co największy zdefiniowany element tego wyliczenia. To pozwala na zmieszczenie wszystkich potencjalnych wartości wyliczenia w jednym obszarze pamięci o pewnej konkretnej wielkościDodatkowo:
enum
w Ruscie są czasem nazywane tagowanymi uniami (ang. tagged unions), ze względu na wspomnianą już unikalną charakterystykę pozwalającą na trzymanie danych wewnątrz elementów