pub fn into_raw_parts_with_alloc(self) -> (*mut T, usize, usize, A) {
        let mut me = ManuallyDrop::new(self);
        let len = me.len();
        let capacity = me.capacity();
        let ptr = me.as_mut_ptr();
        let alloc = unsafe { ptr::read(me.allocator()) };
        (ptr, len, capacity, alloc)
    }
Tries to reserve capacity for at least `additional` more elements to be inserted
in the given `Vec<T>`. The collection may reserve more space to avoid
frequent reallocations. After calling `try_reserve`, capacity will be
greater than or equal to `self.len() + additional`. Does nothing if
capacity is already sufficient.
benchmarks/haystacks/code/rust-library.rs