pub const fn new_in(alloc: A) -> Self {
        Vec { buf: RawVec::new_in(alloc), len: 0 }
    }
Creates a `Vec<T, A>` directly from the raw components of another vector.

# Safety

This is highly unsafe, due to the number of invariants that aren't
checked:

* `ptr` needs to have been previously allocated via [`String`]/`Vec<T>`
(at least, it's highly likely to be incorrect if it wasn't).
* `T` needs to have the same size and alignment as what `ptr` was allocated with.
(`T` having a less strict alignment is not sufficient, the alignment really
needs to be equal to satisfy the [`dealloc`] requirement that memory must be
allocated and deallocated with the same layout.)
* `length` needs to be less than or equal to `capacity`.
* `capacity` needs to be the capacity that the pointer was allocated with.

Violating these may cause problems like corrupting the allocator's
internal data structures. For example it is **not** safe
to build a `Vec<u8>` from a pointer to a C `char` array with length `size_t`.
It's also
benchmarks/haystacks/code/rust-library.rs