use hashset_ext::HashSetExt;
fn main() {
let set1:HashSetExt<i32> = HashSetExt::from(vec![1, 2, 3, 4, 5]);
let set2: HashSetExt<i32> = HashSetExt::from((3..=8).collect::<Vec<i32>>());
let set3: HashSetExt<i32> = HashSetExt::from((5..=10).collect::<Vec<i32>>());
println!("Union {:?}" , &set1 | &set2 | &set3);
println!("Intersection {:?}" , &set1 & &set2 & &set3);
println!("Difference {:?}" , &set1 - &set2);
println!("SymmDiff {:?}" , &set1 ^ &set2);
let mut set1_copy = set1.clone();
set1_copy |= set2;
println!("In-place Union: {:?}", set1_copy);
}