Типы объединений
Тип объединения — это номинальное, гетерогенное объединение в стиле C, обозначаемое именем
элемента union.
Объединения не имеют понятия “активного поля”. Вместо этого каждый доступ к объединению преобразует части содержимого объединения в тип доступного поля.
Поскольку преобразования могут вызвать неожиданное или неопределенное поведение, unsafe
требуется для чтения из поля объединения.
Типы полей объединения также ограничены подмножеством типов, которое гарантирует, что они никогда не требуют сброса. Смотрите документацию по элементу для дальнейших деталей.
Расположение в памяти union по умолчанию не определено (в частности, поля
не должны быть по смещению 0), но атрибут #[repr(...)] может быть использован для
фиксации расположения.