Function permutation::permutation::sort_by [] [src]

pub fn sort_by<T, D, F>(vec: D, compare: F) -> Permutation where
    T: Ord,
    D: Deref<Target = [T]>,
    F: FnMut(&T, &T) -> Ordering

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

This is the same as permutation::sort() except that it allows you to specify the comparator to use when sorting similar to std::slice.sort_by()

Examples

let mut vec = vec!['z','w','h','a','s','j'];
let permutation = permutation::sort_by(&vec[..], |a, b| b.cmp(a));
let permuted = permutation.apply_slice(&vec[..]);
vec.sort_by(|a,b| b.cmp(a));
assert!(vec == permuted);