about summary refs log tree commit diff
path: root/library/alloc/src
diff options
context:
space:
mode:
authorStuart Cook <Zalathar@users.noreply.github.com>2025-05-06 16:28:39 +1000
committerGitHub <noreply@github.com>2025-05-06 16:28:39 +1000
commitd5c09b4aa6107fef442abfb3940ede9a628b296b (patch)
treeea337d6a496d665d2e24396d0a15db26a5e94d15 /library/alloc/src
parent5ca0053c794ec9c5a2c843785193bedeac53e4a8 (diff)
parentcbdd7134ff72aaf3679f4df2b2e4a0fe847edd06 (diff)
downloadrust-d5c09b4aa6107fef442abfb3940ede9a628b296b.tar.gz
rust-d5c09b4aa6107fef442abfb3940ede9a628b296b.zip
Rollup merge of #139773 - thaliaarchi:vec-into-iter-last, r=workingjubilee
Implement `Iterator::last` for `vec::IntoIter`

Avoid iterating everything when we have random access to the last element.
Diffstat (limited to 'library/alloc/src')
-rw-r--r--library/alloc/src/vec/into_iter.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/library/alloc/src/vec/into_iter.rs b/library/alloc/src/vec/into_iter.rs
index 1af110691ba..37df928228d 100644
--- a/library/alloc/src/vec/into_iter.rs
+++ b/library/alloc/src/vec/into_iter.rs
@@ -259,6 +259,11 @@ impl<T, A: Allocator> Iterator for IntoIter<T, A> {
     }
 
     #[inline]
+    fn last(mut self) -> Option<T> {
+        self.next_back()
+    }
+
+    #[inline]
     fn next_chunk<const N: usize>(&mut self) -> Result<[T; N], core::array::IntoIter<T, N>> {
         let mut raw_ary = [const { MaybeUninit::uninit() }; N];