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 IdxRange { impl Iterator for IdxRange { type Item = Idx; + fn next(&mut self) -> Option { self.range.next().map(|raw| Idx::from_raw(raw.into())) } + + fn size_hint(&self) -> (usize, Option) { + self.range.size_hint() + } } impl DoubleEndedIterator for IdxRange { @@ -187,6 +192,8 @@ impl DoubleEndedIterator for IdxRange { } } +impl ExactSizeIterator for IdxRange {} + impl fmt::Debug for IdxRange { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_tuple(&format!("IdxRange::<{}>", std::any::type_name::()))