[][src]Function iter_set::cmp_by_key

pub fn cmp_by_key<T, L, R, K, F>(a: L, b: R, key: F) -> Option<Ordering> where
    L: IntoIterator<Item = T>,
    R: IntoIterator<Item = T>,
    K: Ord,
    F: FnMut(&T) -> K, 

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

See cmp().

Examples

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

let a = [(1, "a"), (2, "b"), (3, "c")];
let b = [(2, "d"), (3, "a")];
let c = [(2, "b"), (3, "c"), (4, "d")];

assert_eq!(cmp_by_key(&a, &b, |&(key, _)| key), Some(Greater));
assert_eq!(cmp_by_key(&b, &b, |&(key, _)| key), Some(Equal));
assert_eq!(cmp_by_key(&b, &c, |&(key, _)| key), Some(Less));
assert_eq!(cmp_by_key(&a, &c, |&(key, _)| key), None);