Make CxxVector's iterator an ExactSizeIterator
diff --git a/src/cxx_vector.rs b/src/cxx_vector.rs
index df29616..31dc11c 100644
--- a/src/cxx_vector.rs
+++ b/src/cxx_vector.rs
@@ -128,9 +128,23 @@
fn next(&mut self) -> Option<Self::Item> {
let next = self.v.get(self.index);
- self.index += 1;
+ self.index += next.is_some() as usize;
next
}
+
+ fn size_hint(&self) -> (usize, Option<usize>) {
+ let len = self.len();
+ (len, Some(len))
+ }
+}
+
+impl<'a, T> ExactSizeIterator for Iter<'a, T>
+where
+ T: VectorElement,
+{
+ fn len(&self) -> usize {
+ self.v.len() - self.index
+ }
}
impl<T> Debug for CxxVector<T>