Function safe_transmute::trivial::transmute_trivial
source · pub unsafe fn transmute_trivial<T: TriviallyTransmutable>(
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 at least enough bytes to fill a single instance of a type, extraneous data is ignored.
§Errors
An error is returned in one of the following situations:
- The data does not have enough bytes for a single value
T
.
§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::<u32>(&[0x00, 0x00, 0x00, 0x01])?, 0x0100_0000);
}