From 665c0cb547e044e6ff744e1b2c4b84e6232c97a6 Mon Sep 17 00:00:00 2001 From: oxalica Date: Sat, 6 May 2023 21:59:03 +0800 Subject: [PATCH] Forward `Iterator::{count,last,nth}` for `IdxRange` random access --- lib/la-arena/src/lib.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/la-arena/src/lib.rs b/lib/la-arena/src/lib.rs index eac9802e3eb5..63827e0ba964 100644 --- a/lib/la-arena/src/lib.rs +++ b/lib/la-arena/src/lib.rs @@ -184,6 +184,24 @@ impl Iterator for IdxRange { fn size_hint(&self) -> (usize, Option) { self.range.size_hint() } + + fn count(self) -> usize + where + Self: Sized, + { + self.range.count() + } + + fn last(self) -> Option + where + Self: Sized, + { + self.range.last().map(|raw| Idx::from_raw(raw.into())) + } + + fn nth(&mut self, n: usize) -> Option { + self.range.nth(n).map(|raw| Idx::from_raw(raw.into())) + } } impl DoubleEndedIterator for IdxRange {