Function safe_transmute::trivial::transmute_trivial_many

source ·
pub unsafe fn transmute_trivial_many<T: TriviallyTransmutable, G: Guard>(
    bytes: &[u8]
) -> Result<&[T], Error<'_, u8, T>>
Expand description

Transmute a byte slice into a single instance of a trivially transmutable type.

The byte slice must have exactly enough bytes to fill a single instance of a type.

§Errors

An error is returned if the data does not comply with the policies of the given guard G.

§Safety

This function invokes undefined behavior if the data does not have a memory alignment compatible with T. If this cannot be ensured, you will have to make a copy of the data, or change how it was originally made.

§Examples

// Little-endian
unsafe {
    assert_eq!(transmute_trivial_many::<u16, SingleManyGuard>(&[0x00, 0x01, 0x00, 0x02])?,
               &[0x0100, 0x0200]);
}