chacha8rand 0.1.2

Reproducible, robust and (last but not least) fast pseudorandomness
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#[inline]
pub(crate) fn array_chunks_mut<const C: usize, const N: usize>(
    a: &mut [u8; N],
) -> impl Iterator<Item = &mut [u8; C]> {
    const { assert!(N % C == 0, "array length must be multiple of chunk length") }
    a.chunks_exact_mut(C).map(|chunk| chunk.try_into().unwrap())
}

#[inline]
pub(crate) fn slice_array_mut<const N: usize>(a: &mut [u8], start: usize) -> &mut [u8; N] {
    (&mut a[start..][..N]).try_into().unwrap()
}

#[inline]
pub(crate) fn slice_array<const N: usize>(a: &[u8], start: usize) -> &[u8; N] {
    a[start..][..N].try_into().unwrap()
}