pub fn copy_from_slice_to_offset_with_align<T: Copy, S: Slab + ?Sized>(
    src: &[T],
    dst: &mut S,
    start_offset: usize,
    min_alignment: usize
) -> Result<CopyRecord, Error>
Expand description

Copies from slice into the memory represented by dst starting at a minimum location of start_offset bytes past the start of dst.

  • start_offset is the offset into the allocation represented by dst, in bytes, before which any copied data will certainly not be placed. However, the actual beginning of the copied data may not be exactly at start_offset if padding bytes are needed to satisfy alignment requirements. The actual beginning of the copied bytes is contained in the returned CopyRecord.
  • min_alignment is the minimum alignment that you are requesting the copy be aligned to. The copy may be aligned greater than min_alignment depending on the alignment requirements of T (the actual alignment will be the greater of the two between align_of::<T>() and min_align.next_power_of_two()).
    • The whole data of the slice will be copied directly, so alignment between elements ignores min_alignment.

Safety

This function is safe on its own, however it is very possible to do unsafe things if you read the copied data in the wrong way. See the crate-level Safety documentation for more.