pub unsafe fn from_raw_in(raw: *mut T, alloc: A) -> Self {
        Box(unsafe { Unique::new_unchecked(raw) }, alloc)
    }
Consumes the `Box`, returning a wrapped raw pointer and the allocator.

The pointer will be properly aligned and non-null.

After calling this function, the caller is responsible for the
memory previously managed by the `Box`. In particular, the
caller should properly destroy `T` and release the memory, taking
into account the [memory layout] used by `Box`. The easiest way to
do this is to convert the raw pointer back into a `Box` with the
[`Box::from_raw_in`] function, allowing the `Box` destructor to perform
the cleanup.

Note: this is an associated function, which means that you have
to call it as `Box::into_raw_with_allocator(b)` instead of `b.into_raw_with_allocator()`. This
is so that there is no conflict with a method on the inner type.

# Examples
Converting the raw pointer back into a `Box` with [`Box::from_raw_in`]
benchmarks/haystacks/code/rust-library.rs