cxx/
opaque.rs

1#![allow(missing_docs)]
2
3use crate::void;
4use core::marker::{PhantomData, PhantomPinned};
5use core::mem;
6
7// . size = 0
8// . align = 1
9// . ffi-safe
10// . !Send
11// . !Sync
12// . !Unpin
13#[repr(C, packed)]
14pub struct Opaque {
15    _private: [*const void; 0],
16    _pinned: PhantomData<PhantomPinned>,
17}
18
19const_assert_eq!(0, mem::size_of::<Opaque>());
20const_assert_eq!(1, mem::align_of::<Opaque>());