[][src]Function iter_set::cmp_by

pub fn cmp_by<T, L, R, F>(a: L, b: R, cmp: F) -> Option<Ordering> where
    L: IntoIterator<Item = T>,
    R: IntoIterator<Item = T>,
    F: FnMut(&mut T, &mut T) -> Ordering

Compare two sets represented by sorted, deduplicated iterators, using a comparator function.

See cmp().

Examples

Using a custom comparator to reverse the ordering

use std::cmp::Ordering::{Equal, Greater, Less};
use iter_set::cmp_by;

let a = [3, 2, 1];
let b = [3, 2];
let c = [4, 3, 2];

assert_eq!(cmp_by(&a, &b, |l, r| Ord::cmp(r, l)), Some(Greater));
assert_eq!(cmp_by(&b, &b, |l, r| Ord::cmp(r, l)), Some(Equal));
assert_eq!(cmp_by(&b, &c, |l, r| Ord::cmp(r, l)), Some(Less));
assert_eq!(cmp_by(&a, &c, |l, r| Ord::cmp(r, l)), None);