[−][src]Trait uninit::VecReserveUninit
Extension trait for Vec, that reserves extra uninitialized memory for
it, and returns a mutable handle on those extra (uninitialized) bytes.
Example
use ::uninit::VecReserveUninit; let mut vec = b"Hello, ".to_vec(); const WORLD: &[u8] = b"World!"; let uninit_start: *mut u8 = vec.as_mut_ptr().wrapping_add(vec.len()); let extra: &mut [MaybeUninit<u8>] = vec.reserve_uninit(WORLD.len()); assert_eq!(extra.as_mut_ptr() as *mut u8, uninit_start); unsafe { assert_eq!(extra.len(), WORLD.len()); ::core::ptr::copy_nonoverlapping( WORLD.as_ptr(), extra.as_mut_ptr() as *mut u8, extra.len(), ); vec.set_len(vec.len() + 6); } assert_eq!( vec, b"Hello, World!", );