Unnamed repository; edit this file 'description' to name the repository.
Forward `Iterator::{count,last,nth}` for `IdxRange` random access
oxalica 2023-05-06
parent 86eaf53 · commit 665c0cb
-rw-r--r--lib/la-arena/src/lib.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/la-arena/src/lib.rs b/lib/la-arena/src/lib.rs
index eac9802e3e..63827e0ba9 100644
--- a/lib/la-arena/src/lib.rs
+++ b/lib/la-arena/src/lib.rs
@@ -184,6 +184,24 @@ impl<T> Iterator for IdxRange<T> {
fn size_hint(&self) -> (usize, Option<usize>) {
self.range.size_hint()
}
+
+ fn count(self) -> usize
+ where
+ Self: Sized,
+ {
+ self.range.count()
+ }
+
+ fn last(self) -> Option<Self::Item>
+ where
+ Self: Sized,
+ {
+ self.range.last().map(|raw| Idx::from_raw(raw.into()))
+ }
+
+ fn nth(&mut self, n: usize) -> Option<Self::Item> {
+ self.range.nth(n).map(|raw| Idx::from_raw(raw.into()))
+ }
}
impl<T> DoubleEndedIterator for IdxRange<T> {