pub fn leak<'a>(self) -> &'a mut [T]
    where
        A: 'a,
    {
        Box::leak(self.into_boxed_slice())
    }
Returns vector content as a slice of `T`, along with the remaining spare
capacity of the vector as a slice of `MaybeUninit<T>`.

The returned spare capacity slice can be used to fill the vector with data
(e.g. by reading from a file) before marking the data as initialized using
the [`set_len`] method.

[`set_len`]: Vec::set_len

Note that this is a low-level API, which should be used with care for
optimization purposes. If you need to append data to a `Vec`
you can use [`push`], [`extend`], [`extend_from_slice`],
[`extend_from_within`], [`insert`], [`append`], [`resize`] or
[`resize_with`], depending on your exact needs.

[`push`]: Vec::push
[`extend`]: Vec::extend
[`extend_from_slice`]: Vec::extend_from_slice
[`extend_from_within`]: Vec::extend_from_within
[`insert`]: Vec::insert
[`append`]: Vec::append
[`resize`]: Vec::resize
[`resize_with`]: Vec::resize_with

# Examples

```
#![feature(vec_split_at_spare, maybe_uninit_extra)]

let mut v = vec![1, 1, 2];

// Reserve additional space big enough for 10 elements.
benchmarks/haystacks/code/rust-library.rs