@@ -571,6 +571,8 @@ macro_rules! arbitrary_tuple {
571
571
}
572
572
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 ) ;
573
573
574
+ // Helper to safely create arrays since the standard library doesn't
575
+ // provide one yet. Shouldn't be necessary in the future.
574
576
struct ArrayGuard < T , const N : usize > {
575
577
dst : * mut T ,
576
578
initialized : usize ,
@@ -591,9 +593,11 @@ where
591
593
F : FnMut ( usize ) -> T ,
592
594
{
593
595
let mut array: mem:: MaybeUninit < [ T ; N ] > = mem:: MaybeUninit :: uninit ( ) ;
596
+ let array_ptr = array. as_mut_ptr ( ) ;
597
+ let dst = array_ptr as _ ;
594
598
let mut guard: ArrayGuard < T , N > = ArrayGuard {
595
- dst : array . as_mut_ptr ( ) as _ ,
596
- initialized : 0 ,
599
+ dst,
600
+ initialized : 0
597
601
} ;
598
602
unsafe {
599
603
for ( idx, value_ptr) in ( & mut * array. as_mut_ptr ( ) ) . iter_mut ( ) . enumerate ( ) {
@@ -610,9 +614,11 @@ where
610
614
F : FnMut ( usize ) -> Result < T > ,
611
615
{
612
616
let mut array: mem:: MaybeUninit < [ T ; N ] > = mem:: MaybeUninit :: uninit ( ) ;
617
+ let array_ptr = array. as_mut_ptr ( ) ;
618
+ let dst = array_ptr as _ ;
613
619
let mut guard: ArrayGuard < T , N > = ArrayGuard {
614
- dst : array . as_mut_ptr ( ) as _ ,
615
- initialized : 0 ,
620
+ dst,
621
+ initialized : 0
616
622
} ;
617
623
unsafe {
618
624
for ( idx, value_ptr) in ( & mut * array. as_mut_ptr ( ) ) . iter_mut ( ) . enumerate ( ) {
0 commit comments