From aee04824d6e9cd63d5bb2066bfe39245fbf9a682 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Fri, 30 Jul 2021 16:07:38 -0700 Subject: [PATCH] impl ExactSizeIterator for Drain --- src/map.rs | 6 ++++++ src/set.rs | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/map.rs b/src/map.rs index 9b833c3..fad30cf 100644 --- a/src/map.rs +++ b/src/map.rs @@ -1098,6 +1098,12 @@ impl DoubleEndedIterator for Drain<'_, K, V> { double_ended_iterator_methods!(Bucket::key_value); } +impl ExactSizeIterator for Drain<'_, K, V> { + fn len(&self) -> usize { + self.iter.len() + } +} + impl<'a, K, V, S> IntoIterator for &'a IndexMap { type Item = (&'a K, &'a V); type IntoIter = Iter<'a, K, V>; diff --git a/src/set.rs b/src/set.rs index f559999..404af27 100644 --- a/src/set.rs +++ b/src/set.rs @@ -786,6 +786,12 @@ impl DoubleEndedIterator for Drain<'_, T> { double_ended_iterator_methods!(Bucket::key); } +impl ExactSizeIterator for Drain<'_, T> { + fn len(&self) -> usize { + self.iter.len() + } +} + impl<'a, T, S> IntoIterator for &'a IndexSet { type Item = &'a T; type IntoIter = Iter<'a, T>;