implement nth_back for Range

This commit is contained in:
Adrian Friedli
2019-06-08 22:30:45 +02:00
parent 5c45343f11
commit 26d4c8f01c
2 changed files with 30 additions and 0 deletions

View File

@@ -281,6 +281,19 @@ impl<A: Step> DoubleEndedIterator for ops::Range<A> {
None
}
}
#[inline]
fn nth_back(&mut self, n: usize) -> Option<A> {
if let Some(minus_n) = self.end.sub_usize(n) {
if minus_n > self.start {
self.end = minus_n.sub_one();
return Some(self.end.clone())
}
}
self.end = self.start.clone();
None
}
}
#[stable(feature = "fused", since = "1.26.0")]