A union type is a nominal, heterogeneous C-like union, denoted by the name of
Unions have no notion of an "active field". Instead, every union access
transmutes parts of the content of the union to the type of the accessed
field. Since transmutes can cause unexpected or undefined behaviour,
is required to read from a union field, or to write to a field that doesn't
Copy or has a
ManuallyDrop type. See the item documentation
for further details.
The memory layout of a
union is undefined by default, but the
attribute can be used to fix a layout.