Function safe_transmute::base::transmute_many_permissive [−][src]
pub unsafe fn transmute_many_permissive<T>(bytes: &[u8]) -> &[T]
View a byte slice as a slice of an arbitrary type.
The resulting slice will have as many instances of a type as will fit,
rounded down. The permissive guard is a no-op, which makes it possible for
this function to return a slice directly. It is therefore equivalent to
transmute_many::<_, PermissiveGuard>(bytes).unwrap()
.
Safety
- This function does not perform memory alignment checks. The beginning of
the slice data must be properly aligned for accessing vlues of type
T
. - The byte data needs to correspond to a valid contiguous sequence of
T
values. TypesT
with aDrop
implementation are unlikely to be safe in this regard.
Failure to fulfill any of the requirements above may result in undefined behavior.
Examples
// Little-endian unsafe { assert_eq!( transmute_many_permissive::<u16>(&[0x00, 0x01, 0x00, 0x02]), &[0x0100, 0x0200] ); }