pub fn split_at_spare_mut(&mut self) -> (&mut [T], &mut [MaybeUninit<T>]) {
        // SAFETY:
        // - len is ignored and so never changed
        let (init, spare, _) = unsafe { self.split_at_spare_mut_with_len() };
        (init, spare)
    }
Clones and appends all elements in a slice to the `Vec`.

Iterates over the slice `other`, clones each element, and then appends
it to this `Vec`. The `other` vector is traversed in-order.

Note that this function is same as [`extend`] except that it is
specialized to work with slices instead. If and when Rust gets
specialization this function will likely be deprecated (but still
availab
benchmarks/haystacks/code/rust-library.rs