4 #![feature(untagged_unions)]
6 use std
::mem
::{size_of, size_of_val, align_of, align_of_val}
;
15 assert_eq
!(align_of
::<U16
>(), 16);
16 assert_eq
!(size_of
::<U16
>(), 16);
17 let u
= U16 { a: 10 }
;
19 assert_eq
!(align_of_val(&u
.a
), 1);
20 assert_eq
!(size_of_val(&u
.a
), 1);
24 let u
= U16 { b: 11 }
;
26 assert_eq
!(align_of_val(&u
.b
), 4);
27 assert_eq
!(size_of_val(&u
.b
), 4);
31 hybrid
::check_hybrid();
35 use std
::mem
::{size_of, align_of}
;
55 pub fn check_hybrid() {
56 assert_eq
!(align_of
::<S1
>(), 16);
57 assert_eq
!(size_of
::<S1
>(), 16);
58 assert_eq
!(align_of
::<U
>(), 32);
59 assert_eq
!(size_of
::<U
>(), 32);
60 assert_eq
!(align_of
::<S2
>(), 64);
61 assert_eq
!(size_of
::<S2
>(), 64);