(&array as *const _ as *const [T; N]).read()
}
-pub fn make_array<T, F: FnMut() -> T, const N: usize>(mut f: F) -> [T; N]
-where
- T: Sized,
-{
- let mut array = uninit_array();
- for elem in &mut array[..] {
- elem.write(f());
- }
- unsafe { array_assume_init(array) }
-}
-
pub fn uninit_box<T>() -> Box<MaybeUninit<T>> {
let layout = std::alloc::Layout::new::<MaybeUninit<T>>();
unsafe {
use narcissus_app::{App, Window};
use narcissus_core::{
- cstr, default, make_array, manual_arc, manual_arc::ManualArc, Mutex, PhantomUnsend, Pool,
+ cstr, default, manual_arc, manual_arc::ManualArc, Mutex, PhantomUnsend, Pool,
};
use vk::{DeviceFunctions, SurfaceKHRFunctions, SwapchainKHRFunctions};
semaphore
};
- let frames = Box::new(make_array(|| {
+ let frames = Box::new(std::array::from_fn(|_| {
let cmd_buffer_pools = GpuConcurrent::new(|| {
let pool = {
let create_info = vk::CommandPoolCreateInfo {