1 // compile-flags: -Zinline-mir
6 permutations(&['a', 'b', 'c']);
10 fn permutations<T: Copy + Display>(xs: &[T]) {
11 let mut ys = xs.to_owned();
12 permutate(&mut ys, 0);
15 fn permutate<T: Copy + Display>(xs: &mut [T], k: usize) {
30 fn length<T>(xs: &[T]) -> usize {
35 fn swap<T: Copy>(xs: &mut [T], i: usize, j: usize) {
41 fn display<T: Display>(xs: &[T]) {