pub fn into_vec<T, A: Allocator>(b: Box<[T], A>) -> Vec<T, A> {
        unsafe {
            let len = b.len();
            let (b, alloc) = Box::into_raw_with_allocator(b);
            Vec::from_raw_parts_in(b as *mut T, len, len, alloc)
        }
    }
Sorts the slice.

This sort is stable (i.e., does not reorder equal elements) and *O*(*n* \* log(*n*)) worst-case.

When applicable, unstable sorting is preferred because it is generally faster than stable
sorting and it doesn't allocate auxiliary
benchmarks/haystacks/code/rust-library.rs