permoot 0.2.1

General-purpose no_std permutation library
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use rand::distributions::{Distribution, Standard};
use rand::seq::SliceRandom;
use rand::Rng;

use crate::util::range_array;
use crate::Permutation;

impl<const N: usize> Distribution<Permutation<N>> for Standard {
	fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Permutation<N> {
		let mut arr_repr = range_array();

		arr_repr.shuffle(rng);

		Permutation { arr_repr }
	}
}