Function std::mem::transmute_copy
[−]
[src]
pub unsafe fn transmute_copy<T, U>(src: &T) -> U
Interprets src
`srcas
` as &U
`&U, and then reads
src` without moving the contained
value.
This function will unsafely assume the pointer src
`srcis valid for
sizeof(U)bytes by transmuting
&Tto
` to &U
`&Uand then reading the
&U. It will also unsafely create a copy of the contained value instead of moving out of
src`.
It is not a compile-time error if T
`Tand
` and U
`Uhave different sizes, but it is highly encouraged to only invoke this function where
Tand
` and U
`Uhave the same size. This function triggers undefined behavior if
Uis larger than
T`.
Examples
fn main() { use std::mem; let one = unsafe { mem::transmute_copy(&1) }; assert_eq!(1, one); }use std::mem; let one = unsafe { mem::transmute_copy(&1) }; assert_eq!(1, one);