Skip to content

Latest commit

 

History

History
27 lines (21 loc) · 910 Bytes

union.md

File metadata and controls

27 lines (21 loc) · 910 Bytes

r[type.union]

Union types

r[type.union.intro] A union type is a nominal, heterogeneous C-like union, denoted by the name of a union item.

r[type.union.access] 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.

r[type.union.safety] Since transmutes can cause unexpected or undefined behaviour, unsafe is required to read from a union field.

r[type.union.constraint] Union field types are also restricted to a subset of types which ensures that they never need dropping. See the item documentation for further details.

r[type.union.layout] The memory layout of a union is undefined by default (in particular, fields do not have to be at offset 0), but the #[repr(...)] attribute can be used to fix a layout.