Function safe_transmute::to_bytes::transmute_to_bytes

source ·
pub fn transmute_to_bytes<S: TriviallyTransmutable>(from: &[S]) -> &[u8] 
Expand description

Transmute a slice of arbitrary types into a slice of their bytes.

§Examples

Some u16s:

// Little-endian
assert_eq!(transmute_to_bytes(&[0x0123u16, 0x4567u16]),
           &[0x23, 0x01, 0x67, 0x45]);

An arbitrary type:

#[repr(C)]
#[derive(Clone, Copy)]
struct Gene {
    x1: u8,
    x2: u8,
}
unsafe impl TriviallyTransmutable for Gene {}

assert_eq!(transmute_to_bytes(&[Gene {
                                         x1: 0x42,
                                         x2: 0x69,
                                     },
                                     Gene {
                                         x1: 0x12,
                                         x2: 0x48,
                                     }]),
           &[0x42, 0x69, 0x12, 0x48]);