Macro zerocopy::transmute

source ·
macro_rules! transmute {
    ($e:expr) => { ... };
}
Expand description

Safely transmutes a value of one type to a value of another type of the same size.

The expression $e must have a concrete type, T, which implements IntoBytes. The transmute! expression must also have a concrete type, U (U is inferred from the calling context), and U must implement FromBytes.

Note that the T produced by the expression $e will not be dropped. Semantically, its bits will be copied into a new value of type U, the original T will be forgotten, and the value of type U will be returned.

§Examples

let one_dimensional: [u8; 8] = [0, 1, 2, 3, 4, 5, 6, 7];

let two_dimensional: [[u8; 4]; 2] = transmute!(one_dimensional);

assert_eq!(two_dimensional, [[0, 1, 2, 3], [4, 5, 6, 7]]);