Function safe_transmute::to_bytes::transmute_to_bytes_mut
source · pub fn transmute_to_bytes_mut<S: TriviallyTransmutable>(
from: &mut [S]
) -> &mut [u8] ⓘ
Expand description
Transmute a mutable slice of a trivially transmutable type into a mutable slice of its bytes.
§Examples
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
struct Gene {
x1: u8,
x2: u8,
}
unsafe impl TriviallyTransmutable for Gene {}
let mut genes = [Gene {
x1: 0x42,
x2: 0x69,
},
Gene {
x1: 0x12,
x2: 0x48,
}];
{
let gene_data = transmute_to_bytes_mut(&mut genes);
assert_eq!(gene_data, &mut [0x42, 0x69, 0x12, 0x48]);
gene_data[0] = 0xB0;
gene_data[3] = 0x0B;
}
assert_eq!(genes, [Gene {
x1: 0xB0,
x2: 0x69,
},
Gene {
x1: 0x12,
x2: 0x0B,
}]);