1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
//! Varified use cargo_snippet::snippet; use rand::{thread_rng, Rng}; #[snippet] pub fn shuffle<T>(v: &mut Vec<T>) { for i in (1..v.len()).rev() { v.swap(thread_rng().gen_range(0, i), i); } } #[test] fn test_shuffle() { let mut v = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; shuffle(&mut v); println!("{:?}", v); }