Stage 4.9: Enums With Data
enum
elements can also have one or more data types allowing them to behave like union
from C.
When an enum
is pattern matched using match
, you can bind a variable
name to each data value.
Memory details of enum
:
- An enum data value will have a memory size equal to its largest element. This allows for all potential values to fit in the same space of memory.
- In addition to element data types (if any), each element also has a numeric value that represents which tag it is.
Other details:
- Rust's
enum
is something also known as a tagged union. - The combining of types to make a new type is what people mean when they say Rust has algebraic types.