aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/src/lib.rs13
1 files changed, 1 insertions, 12 deletions
diff --git a/lib/src/lib.rs b/lib/src/lib.rs
index 75acd57..c7e9285 100644
--- a/lib/src/lib.rs
+++ b/lib/src/lib.rs
@@ -84,18 +84,7 @@ impl<T: GenerateRandom> GenerateRandom for Option<T> {
impl<T: GenerateRandom, const N: usize> GenerateRandom for [T; N] {
fn generate_random<R: rand::Rng + ?Sized>(rng: &mut R) -> Self {
- use core::mem::MaybeUninit;
-
- let mut arr: [MaybeUninit<T>; N] = unsafe { MaybeUninit::uninit().assume_init() };
-
- for elem in arr.iter_mut() {
- *elem = MaybeUninit::new(T::generate_random(rng));
- }
-
- let ret = unsafe { std::mem::transmute_copy(&arr) };
- std::mem::forget(arr);
-
- ret
+ core::array::from_fn(|_| T::generate_random(rng))
}
}