about summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authoroxalica <oxalicc@pm.me>2023-05-06 21:15:49 +0800
committeroxalica <oxalicc@pm.me>2023-05-06 21:15:57 +0800
commit300f3a1b43d13b08b2dcd01bdfb992456e3cc012 (patch)
tree521dee7b27efb27684c3b74db9809e358dc0c2bb /lib
parenta4966c92829f945d3846eb0ca0e240ac7f7c8c60 (diff)
downloadrust-300f3a1b43d13b08b2dcd01bdfb992456e3cc012.tar.gz
rust-300f3a1b43d13b08b2dcd01bdfb992456e3cc012.zip
Impl `ExactSizeIterator` for `IdxRange`
Diffstat (limited to 'lib')
-rw-r--r--lib/la-arena/src/lib.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/la-arena/src/lib.rs b/lib/la-arena/src/lib.rs
index b03fa5b61d3..c793fff848e 100644
--- a/lib/la-arena/src/lib.rs
+++ b/lib/la-arena/src/lib.rs
@@ -176,9 +176,14 @@ impl<T> IdxRange<T> {
 
 impl<T> Iterator for IdxRange<T> {
     type Item = Idx<T>;
+
     fn next(&mut self) -> Option<Self::Item> {
         self.range.next().map(|raw| Idx::from_raw(raw.into()))
     }
+
+    fn size_hint(&self) -> (usize, Option<usize>) {
+        self.range.size_hint()
+    }
 }
 
 impl<T> DoubleEndedIterator for IdxRange<T> {
@@ -187,6 +192,8 @@ impl<T> DoubleEndedIterator for IdxRange<T> {
     }
 }
 
+impl<T> ExactSizeIterator for IdxRange<T> {}
+
 impl<T> fmt::Debug for IdxRange<T> {
     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
         f.debug_tuple(&format!("IdxRange::<{}>", std::any::type_name::<T>()))