mod private {
use std::cell::UnsafeCell;
use std::sync::atomic::AtomicUsize;
- use $crate::{array_assume_init, uninit_array, PhantomUnsend};
+ use $crate::PhantomUnsend;
pub struct $token_name {
index: usize,
phantom: PhantomUnsend,
unsafe { libc::gettid() }
}
-pub fn uninit_array<T, const N: usize>() -> [MaybeUninit<T>; N] {
- unsafe { MaybeUninit::<[MaybeUninit<T>; N]>::uninit().assume_init() }
-}
-
-pub unsafe fn array_assume_init<T, const N: usize>(array: [MaybeUninit<T>; N]) -> [T; N] {
- (&array as *const _ as *const [T; N]).read()
-}
-
pub fn uninit_box<T>() -> Box<MaybeUninit<T>> {
let layout = std::alloc::Layout::new::<MaybeUninit<T>>();
unsafe {