Function presser::read_at_offset_mut_unchecked
source · pub unsafe fn read_at_offset_mut_unchecked<'a, T, S: Slab + ?Sized>(
slab: &'a mut S,
offset: usize
) -> &'a mut TExpand description
Gets a mutable reference to a T within slab at offset, not checking any requirements.
offsetis the offset, in bytes, after the start ofslabat which aTis placed.
Safety
You must ensure:
offsetwithinslabis properly aligned forToffsetis within bounds of theslaboffset + size_of::<T>is within bounds of theslab- You must have previously fully-initialized a valid
Tat the given offset intoslab. If you want to fill an uninitialized buffer with data, you should instead use any of the copy helper functions or one of themaybe_uninit_mutread functions.
Note that if you write through the returned reference, any padding bytes within the layout of T
(which for a repr(Rust) type is arbitrary and unknown) must thereafter be considered uninitialized
until you explicitly initialize them again. This means that if you write a T which contains
padding into slab, you must not, for example, try to read those bytes as &[u8] afterwards
(or as some other type which expects those bytes to be initialized), as you would then be
reading uninitialized memory, which is undefined behavior.
* Validity is a complex topic not to be taken lightly. See this rust reference page for more details.