fn main() { let permute_input = [1, 2, 3, 4]; for (i, permutation) in permute::permute(permute_input.clone()).enumerate() { println!("{i}: {permutation:?}"); } let (size, _) = permute::permute(permute_input).size_hint(); println!("size {size}"); println!(); let choose_input = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; for (i, chosen) in permute::choose::<_, 4>(&choose_input).enumerate() { println!("{i}: {chosen:?}"); } let (size, _) = permute::choose::<_, 4>(&choose_input).size_hint(); println!("size {size}"); println!(); for (i, permutation) in permute::choose_permute::<_, 4>(&choose_input).enumerate() { println!("{i}: {permutation:?}"); } let (size, _) = permute::choose_permute::<_, 4>(&choose_input).size_hint(); println!("size {size}"); }