pub struct FindMutView<'a, T, Idx, K>{ /* private fields */ }Expand description
Comes from SortedLinkedList::find_mut.
Implementations§
Source§impl<T, Idx, K> FindMutView<'_, T, Idx, K>
impl<T, Idx, K> FindMutView<'_, T, Idx, K>
Sourcepub fn pop(self) -> T
pub fn pop(self) -> T
This will pop the element from the list.
Complexity is worst-case O(1).
§Example
use heapless::sorted_linked_list::{Max, SortedLinkedList};
let mut ll: SortedLinkedList<_, Max, 3, u8> = SortedLinkedList::new_u8();
ll.push(1).unwrap();
ll.push(2).unwrap();
ll.push(3).unwrap();
// Find a value and update it
let mut find = ll.find_mut(|v| *v == 2).unwrap();
find.pop();
assert_eq!(ll.pop(), Some(3));
assert_eq!(ll.pop(), Some(1));
assert_eq!(ll.pop(), None);Sourcepub fn finish(self)
pub fn finish(self)
This will resort the element into the correct position in the list if needed. The resorting will only happen if the element has been accessed mutably.
Same as calling drop.
Complexity is worst-case O(n).
§Example
use heapless::sorted_linked_list::{Max, SortedLinkedList};
let mut ll: SortedLinkedList<_, Max, 3, u8> = SortedLinkedList::new_u8();
ll.push(1).unwrap();
ll.push(2).unwrap();
ll.push(3).unwrap();
let mut find = ll.find_mut(|v| *v == 2).unwrap();
find.finish(); // No resort, we did not access the value.
let mut find = ll.find_mut(|v| *v == 2).unwrap();
*find += 1000;
find.finish(); // Will resort, we accessed (and updated) the value.
assert_eq!(ll.pop(), Some(1002));
assert_eq!(ll.pop(), Some(3));
assert_eq!(ll.pop(), Some(1));
assert_eq!(ll.pop(), None);Trait Implementations§
Source§impl<T, Idx, K> Deref for FindMutView<'_, T, Idx, K>
impl<T, Idx, K> Deref for FindMutView<'_, T, Idx, K>
Source§impl<T, Idx, K> DerefMut for FindMutView<'_, T, Idx, K>
impl<T, Idx, K> DerefMut for FindMutView<'_, T, Idx, K>
Source§impl<T, Idx, K> Drop for FindMutView<'_, T, Idx, K>
impl<T, Idx, K> Drop for FindMutView<'_, T, Idx, K>
Auto Trait Implementations§
impl<'a, T, Idx, K> !UnwindSafe for FindMutView<'a, T, Idx, K>
impl<'a, T, Idx, K> Freeze for FindMutView<'a, T, Idx, K>where
&'a mut SortedLinkedListInner<T, Idx, K, SortedLinkedListStorageInner<[Node<T, Idx>]>>: Freeze,
Idx: Freeze,
impl<'a, T, Idx, K> RefUnwindSafe for FindMutView<'a, T, Idx, K>where
&'a mut SortedLinkedListInner<T, Idx, K, SortedLinkedListStorageInner<[Node<T, Idx>]>>: RefUnwindSafe,
Idx: RefUnwindSafe,
impl<'a, T, Idx, K> Send for FindMutView<'a, T, Idx, K>where
&'a mut SortedLinkedListInner<T, Idx, K, SortedLinkedListStorageInner<[Node<T, Idx>]>>: Send,
impl<'a, T, Idx, K> Sync for FindMutView<'a, T, Idx, K>where
&'a mut SortedLinkedListInner<T, Idx, K, SortedLinkedListStorageInner<[Node<T, Idx>]>>: Sync,
impl<'a, T, Idx, K> Unpin for FindMutView<'a, T, Idx, K>where
&'a mut SortedLinkedListInner<T, Idx, K, SortedLinkedListStorageInner<[Node<T, Idx>]>>: Unpin,
Idx: Unpin,
impl<'a, T, Idx, K> UnsafeUnpin for FindMutView<'a, T, Idx, K>where
&'a mut SortedLinkedListInner<T, Idx, K, SortedLinkedListStorageInner<[Node<T, Idx>]>>: UnsafeUnpin,
Idx: UnsafeUnpin,
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more