Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// Inserts a slice at a specific location in a vec.
- pub fn insert_slice_at<T: Copy>(vec: &mut Vec<T>, index: usize, slice: &[T]) {
- unsafe {
- assert!(index <= vec.len());
- vec.reserve(slice.len());
- let insert_ptr = vec.as_mut_ptr().offset(index as isize);
- std::ptr::copy(
- insert_ptr,
- insert_ptr.offset(slice.len() as isize),
- vec.len() - index,
- );
- std::ptr::copy_nonoverlapping(slice.as_ptr(), insert_ptr, slice.len());
- vec.set_len(vec.len() + slice.len());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement