#[repr(C)] | |
union PtrRepr<T: ?Sized> { | |
const_ptr: *const T, | |
mut_ptr: *mut T, | |
components: PtrComponents<T>, | |
//~^ ERROR the trait bound | |
//~| ERROR field must implement `Copy` | |
} | |
#[repr(C)] | |
struct PtrComponents<T: Pointee + ?Sized> { | |
data_pointer: *const (), | |
metadata: <T as Pointee>::Metadata, | |
} | |
pub trait Pointee { | |
type Metadata; | |
} | |
fn main() {} |