Skip to content

Commit 599bb39

Browse files
committed
Remove HashSet Add and AddAssign implementations
1 parent fcb964b commit 599bb39

File tree

2 files changed

+1
-93
lines changed

2 files changed

+1
-93
lines changed

benches/set_ops.rs

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,6 @@ fn set_ops_bit_xor(b: &mut Bencher) {
5252
b.iter(|| &large_set ^ &small_set)
5353
}
5454

55-
#[bench]
56-
fn set_ops_add(b: &mut Bencher) {
57-
let large_set: HashSet<_> = (0..LARGE_SET_SIZE).map(|nr| format!("key{}", nr)).collect();
58-
let small_set: HashSet<_> = ((LARGE_SET_SIZE - OVERLAPP)
59-
..(LARGE_SET_SIZE + SMALL_SET_SIZE - OVERLAPP))
60-
.map(|nr| format!("key{}", nr))
61-
.collect();
62-
b.iter(|| &large_set + &small_set)
63-
}
64-
6555
#[bench]
6656
fn set_ops_sub_large_small(b: &mut Bencher) {
6757
let large_set: HashSet<_> = (0..LARGE_SET_SIZE).map(|nr| format!("key{}", nr)).collect();
@@ -124,20 +114,6 @@ fn set_ops_bit_xor_assign(b: &mut Bencher) {
124114
});
125115
}
126116

127-
#[bench]
128-
fn set_ops_add_assign(b: &mut Bencher) {
129-
let large_set: HashSet<_> = (0..LARGE_SET_SIZE).map(|nr| format!("key{}", nr)).collect();
130-
let small_set: HashSet<_> = ((LARGE_SET_SIZE - OVERLAPP)
131-
..(LARGE_SET_SIZE + SMALL_SET_SIZE - OVERLAPP))
132-
.map(|nr| format!("key{}", nr))
133-
.collect();
134-
b.iter(|| {
135-
let mut set = large_set.clone();
136-
set += &small_set;
137-
set
138-
});
139-
}
140-
141117
#[bench]
142118
fn set_ops_sub_assign_large_small(b: &mut Bencher) {
143119
let large_set: HashSet<_> = (0..LARGE_SET_SIZE).map(|nr| format!("key{}", nr)).collect();

src/set.rs

Lines changed: 1 addition & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@ use alloc::borrow::ToOwned;
55
use core::fmt;
66
use core::hash::{BuildHasher, Hash};
77
use core::iter::{Chain, FusedIterator};
8-
use core::ops::{
9-
Add, AddAssign, BitAnd, BitAndAssign, BitOr, BitOrAssign, BitXor, BitXorAssign, Sub, SubAssign,
10-
};
8+
use core::ops::{BitAnd, BitAndAssign, BitOr, BitOrAssign, BitXor, BitXorAssign, Sub, SubAssign};
119

1210
use super::map::{self, DefaultHashBuilder, HashMap, Keys};
1311
use crate::raw::{Allocator, Global, RawExtractIf};
@@ -1504,38 +1502,6 @@ where
15041502
}
15051503
}
15061504

1507-
impl<T, S> Add<&HashSet<T, S>> for &HashSet<T, S>
1508-
where
1509-
T: Eq + Hash + Clone,
1510-
S: BuildHasher + Default,
1511-
{
1512-
type Output = HashSet<T, S>;
1513-
1514-
/// Returns the union of `self` and `rhs` as a new `HashSet<T, S>`.
1515-
///
1516-
/// # Examples
1517-
///
1518-
/// ```
1519-
/// use hashbrown::HashSet;
1520-
///
1521-
/// let a: HashSet<_> = vec![1, 2, 3].into_iter().collect();
1522-
/// let b: HashSet<_> = vec![2, 3, 4].into_iter().collect();
1523-
///
1524-
/// let set = &a + &b;
1525-
///
1526-
/// let mut i = 0;
1527-
/// let expected = [1, 2, 3, 4];
1528-
/// for x in &set {
1529-
/// assert!(expected.contains(x));
1530-
/// i += 1;
1531-
/// }
1532-
/// assert_eq!(i, expected.len());
1533-
/// ```
1534-
fn add(self, rhs: &HashSet<T, S>) -> HashSet<T, S> {
1535-
self.union(rhs).cloned().collect()
1536-
}
1537-
}
1538-
15391505
impl<T, S> Sub<&HashSet<T, S>> for &HashSet<T, S>
15401506
where
15411507
T: Eq + Hash + Clone,
@@ -1672,40 +1638,6 @@ where
16721638
}
16731639
}
16741640

1675-
impl<T, S> AddAssign<&HashSet<T, S>> for HashSet<T, S>
1676-
where
1677-
T: Eq + Hash + Clone,
1678-
S: BuildHasher,
1679-
{
1680-
/// Modifies this set to contain the union of `self` and `rhs`.
1681-
///
1682-
/// # Examples
1683-
///
1684-
/// ```
1685-
/// use hashbrown::HashSet;
1686-
///
1687-
/// let mut a: HashSet<_> = vec![1, 2, 3].into_iter().collect();
1688-
/// let b: HashSet<_> = vec![2, 3, 4].into_iter().collect();
1689-
///
1690-
/// a += &b;
1691-
///
1692-
/// let mut i = 0;
1693-
/// let expected = [1, 2, 3, 4];
1694-
/// for x in &a {
1695-
/// assert!(expected.contains(x));
1696-
/// i += 1;
1697-
/// }
1698-
/// assert_eq!(i, expected.len());
1699-
/// ```
1700-
fn add_assign(&mut self, rhs: &HashSet<T, S>) {
1701-
for item in rhs {
1702-
if !self.contains(item) {
1703-
self.insert(item.clone());
1704-
}
1705-
}
1706-
}
1707-
}
1708-
17091641
impl<T, S> SubAssign<&HashSet<T, S>> for HashSet<T, S>
17101642
where
17111643
T: Eq + Hash + Clone,

0 commit comments

Comments
 (0)