voracious_radix_sort 1.2.0

State of the art radix sort algorithms. Single thread and multi thread versions.
Documentation
use rand::{thread_rng, Rng};
use rayon::prelude::*;

pub fn helper_random_array_bool_unif(size: usize) -> Vec<bool> {
    (0..size)
        .into_par_iter()
        .map(|_| {
            let value: u8 = thread_rng().gen_range(0, 2);
            value != 0
        })
        .collect::<Vec<bool>>()
}

pub fn helper_random_array_bool_alt(size: usize) -> Vec<bool> {
    (0..size)
        .into_par_iter()
        .enumerate()
        .map(|(i, _)| i % 2 == 0)
        .collect::<Vec<bool>>()
}

pub fn helper_random_array_bool_true(size: usize) -> Vec<bool> {
    vec![true; size]
}

pub fn helper_random_array_bool_false(size: usize) -> Vec<bool> {
    vec![false; size]
}

pub fn helper_random_array_bool_pipe(size: usize) -> Vec<bool> {
    let mut trues = vec![false; size / 2];
    let falses = vec![true; size - (size / 2)];

    trues.extend(falses.iter());
    trues
}

pub fn helper_random_array_bool_pipe_rev(size: usize) -> Vec<bool> {
    let trues = vec![false; size / 2];
    let mut falses = vec![true; size - (size / 2)];

    falses.extend(trues.iter());
    falses
}

pub fn generators_bool(
) -> Vec<(&'static dyn Fn(usize) -> Vec<bool>, &'static str)> {
    vec![
        (&helper_random_array_bool_unif, "-- Unif       :"),
        (&helper_random_array_bool_alt, "-- Alt        :"),
        (&helper_random_array_bool_true, "-- True only  :"),
        (&helper_random_array_bool_false, "-- False only :"),
        (&helper_random_array_bool_pipe, "-- Pipe Organ :"),
        (&helper_random_array_bool_pipe_rev, "-- Pipe Rev   :"),
    ]
}