]> git.lizzy.rs Git - rust.git/blobdiff - src/libcore/slice/mod.rs
Rollup merge of #59328 - koalatux:iter-nth-back, r=scottmcm
[rust.git] / src / libcore / slice / mod.rs
index b3594f8a3858aec27cc66408fa1bb8ae41fe523f..4eb5bddb5d2f469d7bb74ae410facfe7907dca8c 100644 (file)
@@ -3867,6 +3867,19 @@ fn next_back(&mut self) -> Option<&'a [T]> {
             ret
         }
     }
+
+    #[inline]
+    fn nth_back(&mut self, n: usize) -> Option<Self::Item> {
+        let (end, overflow) = self.v.len().overflowing_sub(n);
+        if end < self.size || overflow {
+            self.v = &[];
+            None
+        } else {
+            let ret = &self.v[end-self.size..end];
+            self.v = &self.v[..end-1];
+            Some(ret)
+        }
+    }
 }
 
 #[stable(feature = "rust1", since = "1.0.0")]