From 6cfe7682e18fc27e83294fd815599a77df94f1e4 Mon Sep 17 00:00:00 2001 From: Caio Date: Mon, 29 Mar 2021 18:09:55 -0300 Subject: [PATCH] Address comments --- src/lib.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index bb604ae..7888034 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -571,6 +571,8 @@ macro_rules! arbitrary_tuple { } arbitrary_tuple!(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z); +// Helper to safely create arrays since the standard library doesn't +// provide one yet. Shouldn't be necessary in the future. struct ArrayGuard { dst: *mut T, initialized: usize, @@ -591,10 +593,9 @@ where F: FnMut(usize) -> T, { let mut array: mem::MaybeUninit<[T; N]> = mem::MaybeUninit::uninit(); - let mut guard: ArrayGuard = ArrayGuard { - dst: array.as_mut_ptr() as _, - initialized: 0, - }; + let array_ptr = array.as_mut_ptr(); + let dst = array_ptr as _; + let mut guard: ArrayGuard = ArrayGuard { dst, initialized: 0 }; unsafe { for (idx, value_ptr) in (&mut *array.as_mut_ptr()).iter_mut().enumerate() { core::ptr::write(value_ptr, cb(idx)); @@ -610,10 +611,9 @@ where F: FnMut(usize) -> Result, { let mut array: mem::MaybeUninit<[T; N]> = mem::MaybeUninit::uninit(); - let mut guard: ArrayGuard = ArrayGuard { - dst: array.as_mut_ptr() as _, - initialized: 0, - }; + let array_ptr = array.as_mut_ptr(); + let dst = array_ptr as _; + let mut guard: ArrayGuard = ArrayGuard { dst, initialized: 0 }; unsafe { for (idx, value_ptr) in (&mut *array.as_mut_ptr()).iter_mut().enumerate() { core::ptr::write(value_ptr, cb(idx)?);