pub fn try_new_zeroed() -> Result<Arc<mem::MaybeUninit<T>>, AllocError> {
        unsafe {
            Ok(Arc::from_ptr(Arc::try_allocate_for_layout(
                Layout::new::<T>(),
                |layout| Global.allocate_zeroed(layout),
                |mem| mem as *mut ArcInner<mem::MaybeUninit<T>>,
            )?))
        }
    }
Constructs a new atomically reference-counted slice with uninitialized contents, with the memory being
filled with `0` bytes.

See [`MaybeUninit::zeroed`][zeroed] for examples of correct and
incorrect usage of this method.

# Examples

```
#![feature(new_uninit)]

use std::sync::Arc;
benchmarks/haystacks/code/rust-library.rs