]> git.nega.tv - josh/narcissus/commitdiff
Replace `make_array` with `std::array::from_fn`
authorJoshua Simmons <josh@nega.tv>
Sun, 4 Sep 2022 11:06:33 +0000 (13:06 +0200)
committerJoshua Simmons <josh@nega.tv>
Sun, 4 Sep 2022 11:06:33 +0000 (13:06 +0200)
narcissus-core/src/lib.rs
narcissus-gpu/src/vulkan.rs

index 2dbb1ab9bf9d540018fb6d7003b92736d18620a7..180c7574e3750a61f8ca56760cc51a48f4a8cf0b 100644 (file)
@@ -253,17 +253,6 @@ pub unsafe fn array_assume_init<T, const N: usize>(array: [MaybeUninit<T>; N]) -
     (&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 {
index 4e6e791db604f537adb720655458dd7f53b98a21..080f8f91a17689abe54c87bd87281aaa8e8543fa 100644 (file)
@@ -9,7 +9,7 @@ use std::{
 
 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};
@@ -544,7 +544,7 @@ impl<'app> VulkanDevice<'app> {
             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 {