| David Tolnay | 95dab1d | 2020-11-15 14:32:37 -0800 | [diff] [blame] | 1 | use core::marker::{PhantomData, PhantomPinned}; |
| David Tolnay | 3384c14 | 2020-09-14 00:26:47 -0400 | [diff] [blame] | 2 | use core::mem; |
| David Tolnay | 7db7369 | 2019-10-20 14:51:12 -0400 | [diff] [blame] | 3 | |
| 4 | // . size = 0 |
| 5 | // . align = 1 |
| 6 | // . ffi-safe |
| 7 | // . !Send |
| 8 | // . !Sync |
| David Tolnay | 95dab1d | 2020-11-15 14:32:37 -0800 | [diff] [blame] | 9 | // . !Unpin |
| David Tolnay | 7db7369 | 2019-10-20 14:51:12 -0400 | [diff] [blame] | 10 | #[repr(C, packed)] |
| 11 | pub struct Opaque { |
| 12 | _private: [*const u8; 0], |
| David Tolnay | 95dab1d | 2020-11-15 14:32:37 -0800 | [diff] [blame] | 13 | _pinned: PhantomData<PhantomPinned>, |
| David Tolnay | 7db7369 | 2019-10-20 14:51:12 -0400 | [diff] [blame] | 14 | } |
| 15 | |
| David Tolnay | aa77e82 | 2020-04-24 15:43:05 -0700 | [diff] [blame] | 16 | const_assert_eq!(0, mem::size_of::<Opaque>()); |
| 17 | const_assert_eq!(1, mem::align_of::<Opaque>()); |