Function pre::std::slice::from_raw_parts_mut [−][src]
pub unsafe fn from_raw_parts_mut<'a, T>(data: *mut T, len: usize) -> &'a mut [T]
Expand description
std::slice::from_raw_parts_mut
with preconditions.
This function behaves exactly like std::slice::from_raw_parts_mut
, but also has preconditions checked by pre
.
You should also read the Safety section on the documentation of std::slice::from_raw_parts_mut
.
This function has preconditions
This function has the following preconditions generated by pre
attributes:
- the pointer
data
must be valid for reads and writes - the pointer
data
must have a proper alignment for its type - the allocated object at
data
is valid forlen * mem::size_of::<T>()
bytes - the memory referenced by the returned slice is not accessed by any pointer other than the returned slice for the duration of
'a
len * :: core :: mem :: size_of :: < T > () <= isize :: MAX as usize
To call the function you need to assure
that the preconditions hold:
ⓘ
#[assure(
valid_ptr(data, r+w),
reason = "<specify the reason why you can assure this here>"
)]
#[assure(
proper_align(data),
reason = "<specify the reason why you can assure this here>"
)]
#[assure(
"the allocated object at `data` is valid for `len * mem::size_of::<T>()` bytes",
reason = "<specify the reason why you can assure this here>"
)]
#[assure(
"the memory referenced by the returned slice is not accessed by any pointer other than the returned slice for the duration of `'a`",
reason = "<specify the reason why you can assure this here>"
)]
#[assure(
len * :: core :: mem :: size_of :: < T > () <= isize :: MAX as usize,
reason = "<specify the reason why you can assure this here>"
)]
from_raw_parts_mut(/* parameters omitted */);