konst_kernel/
maybe_uninit.rs

1use core::mem::{ManuallyDrop, MaybeUninit};
2
3#[inline(always)]
4pub const fn uninit_array<T, const LEN: usize>() -> [MaybeUninit<T>; LEN] {
5    union MakeMUArray<T, const LEN: usize> {
6        unit: (),
7        array: ManuallyDrop<[MaybeUninit<T>; LEN]>,
8    }
9
10    unsafe { ManuallyDrop::into_inner(MakeMUArray { unit: () }.array) }
11}
12
13#[inline(always)]
14pub const unsafe fn array_assume_init<T, const N: usize>(md: [MaybeUninit<T>; N]) -> [T; N] {
15    crate::__priv_transmute! {[MaybeUninit<T>; N], [T; N], md}
16}