Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::mem;
- #[derive(Eq, PartialEq)]
- #[repr(packed)]
- struct Bob {
- id: u32,
- age: u32,
- }
- unsafe fn get_type<'a, T: Sized>(p: *const u8) -> &'a T {
- mem::transmute(p)
- }
- #[test]
- fn it_works() {
- let bob = Bob {
- id: 22,
- age: 445,
- };
- let bob2: &Bob = unsafe {
- let ptr: *const u8 = mem::transmute(&bob);
- get_type(ptr)
- };
- assert_eq!(&bob, bob2);
- }
- unsafe fn get_type2<'a, T: ?Sized>(p: *const u8) -> &'a T {
- mem::transmute(p)
- }
Add Comment
Please, Sign In to add comment