pub trait VecExtensions<T> {
fn extend_unique(&mut self, iter: impl IntoIterator<Item = T>);
}
impl<T: std::cmp::PartialEq> VecExtensions<T> for Vec<T> {
fn extend_unique(&mut self, iter: impl IntoIterator<Item = T>) {
iter.into_iter().for_each(|i| {
if !self.contains(&i) {
self.push(i);
}
});
}
}