diff options
| author | Benoît du Garreau <bdgdlm@outlook.com> | 2023-11-27 10:30:12 +0100 |
|---|---|---|
| committer | Benoît du Garreau <bdgdlm@outlook.com> | 2023-12-04 19:48:20 +0100 |
| commit | 7d369f98301047ca66d761549b53bde33b45ab7d (patch) | |
| tree | e8de61275252f5488857abc0b31c8034fecdf860 | |
| parent | 6318cbbe49f916c33bc3f4e5febe6cf0fcb7095a (diff) | |
| download | rust-7d369f98301047ca66d761549b53bde33b45ab7d.tar.gz rust-7d369f98301047ca66d761549b53bde33b45ab7d.zip | |
Specialize `count` too
| -rw-r--r-- | library/std/src/collections/hash/map.rs | 32 | ||||
| -rw-r--r-- | library/std/src/collections/hash/set.rs | 12 |
2 files changed, 44 insertions, 0 deletions
diff --git a/library/std/src/collections/hash/map.rs b/library/std/src/collections/hash/map.rs index b83c4d89c1e..fc27b6a67bf 100644 --- a/library/std/src/collections/hash/map.rs +++ b/library/std/src/collections/hash/map.rs @@ -2233,6 +2233,10 @@ impl<'a, K, V> Iterator for Iter<'a, K, V> { self.base.size_hint() } #[inline] + fn count(self) -> usize { + self.base.len() + } + #[inline] fn fold<B, F>(self, init: B, f: F) -> B where Self: Sized, @@ -2265,6 +2269,10 @@ impl<'a, K, V> Iterator for IterMut<'a, K, V> { self.base.size_hint() } #[inline] + fn count(self) -> usize { + self.base.len() + } + #[inline] fn fold<B, F>(self, init: B, f: F) -> B where Self: Sized, @@ -2307,6 +2315,10 @@ impl<K, V> Iterator for IntoIter<K, V> { self.base.size_hint() } #[inline] + fn count(self) -> usize { + self.base.len() + } + #[inline] fn fold<B, F>(self, init: B, f: F) -> B where Self: Sized, @@ -2345,6 +2357,10 @@ impl<'a, K, V> Iterator for Keys<'a, K, V> { self.inner.size_hint() } #[inline] + fn count(self) -> usize { + self.inner.len() + } + #[inline] fn fold<B, F>(self, init: B, mut f: F) -> B where Self: Sized, @@ -2376,6 +2392,10 @@ impl<'a, K, V> Iterator for Values<'a, K, V> { self.inner.size_hint() } #[inline] + fn count(self) -> usize { + self.inner.len() + } + #[inline] fn fold<B, F>(self, init: B, mut f: F) -> B where Self: Sized, @@ -2407,6 +2427,10 @@ impl<'a, K, V> Iterator for ValuesMut<'a, K, V> { self.inner.size_hint() } #[inline] + fn count(self) -> usize { + self.inner.len() + } + #[inline] fn fold<B, F>(self, init: B, mut f: F) -> B where Self: Sized, @@ -2445,6 +2469,10 @@ impl<K, V> Iterator for IntoKeys<K, V> { self.inner.size_hint() } #[inline] + fn count(self) -> usize { + self.inner.len() + } + #[inline] fn fold<B, F>(self, init: B, mut f: F) -> B where Self: Sized, @@ -2483,6 +2511,10 @@ impl<K, V> Iterator for IntoValues<K, V> { self.inner.size_hint() } #[inline] + fn count(self) -> usize { + self.inner.len() + } + #[inline] fn fold<B, F>(self, init: B, mut f: F) -> B where Self: Sized, diff --git a/library/std/src/collections/hash/set.rs b/library/std/src/collections/hash/set.rs index ea9239f0c47..dcb2fa0f771 100644 --- a/library/std/src/collections/hash/set.rs +++ b/library/std/src/collections/hash/set.rs @@ -1501,6 +1501,10 @@ impl<'a, K> Iterator for Iter<'a, K> { self.base.size_hint() } #[inline] + fn count(self) -> usize { + self.base.len() + } + #[inline] fn fold<B, F>(self, init: B, f: F) -> B where Self: Sized, @@ -1539,6 +1543,10 @@ impl<K> Iterator for IntoIter<K> { self.base.size_hint() } #[inline] + fn count(self) -> usize { + self.base.len() + } + #[inline] fn fold<B, F>(self, init: B, f: F) -> B where Self: Sized, @@ -1851,6 +1859,10 @@ where self.iter.size_hint() } #[inline] + fn count(self) -> usize { + self.iter.count() + } + #[inline] fn fold<B, F>(self, init: B, f: F) -> B where Self: Sized, |
