1 2 3 4 5 6 7 8 9
use std::collections::HashSet;
// returns values in `one` that are not in set `two`
pub fn vec_intersection<T: Clone + std::hash::Hash + Eq>(one: &Vec<T>, two: &Vec<T>) -> Vec<T> {
let set_one: HashSet<T> = one.iter().cloned().collect();
let set_two: HashSet<T> = two.iter().cloned().collect();
(&set_one - &set_two).iter().cloned().collect()
}