destructure_traitobject/
lib.rs1#![cfg_attr(test, deny(warnings))]
2#![deny(missing_docs)]
3#![allow(dyn_drop)]
4
5pub unsafe fn data<T: ?Sized>(val: *const T) -> *const () {
13 val as *const ()
14}
15
16pub unsafe fn data_mut<T: ?Sized>(val: *mut T) -> *mut () {
20 val as *mut ()
21}
22
23#[test]
24fn test_simple() {
25 let x = &7 as &dyn Send;
26 unsafe { assert!(&7 == std::mem::transmute::<_, &i32>(data(x))) };
27}
28
29#[test]
30fn test_mut() {
31 let x = &mut 7 as &mut dyn Send;
32 unsafe { assert!(&mut 7 == std::mem::transmute::<_, &i32>(data_mut(x))) };
33}
34
35pub unsafe trait Trait {}
39
40mod impls;
41