نوع داده چندگانه

همینطور Unionها مانند enum‌ها هستند، اما شما باید خودتان active field را ردیابی کنید:

#[repr(C)]
union MyUnion {
    i: u8,
    b: bool,
}

fn main() {
    let u = MyUnion { i: 42 };
    println!("int: {}", unsafe { u.i });
    println!("bool: {}", unsafe { u.b }); // Undefined behavior!
}
This slide should take about 5 minutes.

به طور کلی Unionها در Rust به ندرت مورد نیاز هستند زیرا معمولاً می‌توانید از enum استفاده کنید. آنها گاهی اوقات برای تعامل با APIهای کتابخانه C مورد نیاز هستند.

اگر فقط می‌خواهید بایت‌ها را به‌عنوان نوع متفاوتی تفسیر کنید، احتمالاً [std::mem::transmute](https://doc.rust-lang.org/stable/std/mem/fn.transmute.html را می‌خواهید ) یا یک safe wrapper مانند جعبه [zerocopy(https://crates.io/crates/zerocopy).