permoot/
rand_impl.rs

1use rand::distributions::{Distribution, Standard};
2use rand::seq::SliceRandom;
3use rand::Rng;
4
5use crate::util::range_array;
6use crate::Permutation;
7
8impl<const N: usize> Distribution<Permutation<N>> for Standard {
9	fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Permutation<N> {
10		let mut arr_repr = range_array();
11
12		arr_repr.shuffle(rng);
13
14		Permutation { arr_repr }
15	}
16}