LinkedList's Cursor: method to get a ref to the cursor's list

This commit is contained in:
Pavel Grigorenko 2024-07-01 00:08:42 +03:00
parent ef3d6fd700
commit 23e5468a09

View File

@ -1495,6 +1495,14 @@ pub fn front(&self) -> Option<&'a T> {
pub fn back(&self) -> Option<&'a T> { pub fn back(&self) -> Option<&'a T> {
self.list.back() self.list.back()
} }
/// Provides a reference to the cursor's parent list.
#[must_use]
#[inline(always)]
#[unstable(feature = "linked_list_cursors", issue = "58533")]
pub fn as_list(&self) -> &'a LinkedList<T, A> {
self.list
}
} }
impl<'a, T, A: Allocator> CursorMut<'a, T, A> { impl<'a, T, A: Allocator> CursorMut<'a, T, A> {
@ -1605,6 +1613,18 @@ pub fn peek_prev(&mut self) -> Option<&mut T> {
pub fn as_cursor(&self) -> Cursor<'_, T, A> { pub fn as_cursor(&self) -> Cursor<'_, T, A> {
Cursor { list: self.list, current: self.current, index: self.index } Cursor { list: self.list, current: self.current, index: self.index }
} }
/// Provides a read-only reference to the cursor's parent list.
///
/// The lifetime of the returned reference is bound to that of the
/// `CursorMut`, which means it cannot outlive the `CursorMut` and that the
/// `CursorMut` is frozen for the lifetime of the reference.
#[must_use]
#[inline(always)]
#[unstable(feature = "linked_list_cursors", issue = "58533")]
pub fn as_list(&self) -> &LinkedList<T, A> {
self.list
}
} }
// Now the list editing operations // Now the list editing operations