Function permutation::permutation::sort_by_key [] [src]

pub fn sort_by_key<T, D, B, F>(vec: D, f: F) -> Permutation where B: Ord, D: Deref<Target=[T]>, F: FnMut(&T) -> B

Return the permutation that would sort a given slice by key.

This is the same as permutation::sort() except that it allows you to specify the key function simliar to std::slice.sort_by_key()

Examples

let mut vec = vec![2, 4, 6, 8, 10, 11];
let permutation = permutation::sort_by_key(&vec[..], |a| a % 3);
let permuted = permutation.apply_slice(&vec[..]);
vec.sort_by_key(|a| a % 3);
assert!(vec == permuted);