Function std::mem::transmute_copy [] [src]

pub unsafe fn transmute_copy<T, U>(src: &T) -> U

Interprets src`srcas` as &U`&U, and then readssrc` without moving the contained value.

This function will unsafely assume the pointer src`srcis valid forsizeof(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 ofsrc`.

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 whereTand` and U`Uhave the same size. This function triggers undefined behavior ifUis larger thanT`.

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);