konst_kernel/
maybe_uninit.rs1use 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}