pub fn encode<T: Ord>(xs: &[T]) -> usize
Expand description
Returns the value of a permutation.
The returned value can be decoded with decode
to get back xs
.
let mut ys = xs.to_vec();
ys.sort();
let p = encode(xs);
assert_eq!(decode(&ys, p), xs);
§Panics
Panics in debug mode if xs
does not contain distinct elements.
§Examples
assert_eq!(encode(&[0, 1, 2]), 0);
assert_eq!(encode(&[0, 2, 1]), 1);
assert_eq!(encode(&[1, 0, 2]), 2);