pub struct OccupiedEntry<'a, K, V> { /* private fields */ }Implementations§
Source§impl<'a, K, V> OccupiedEntry<'a, K, V>
impl<'a, K, V> OccupiedEntry<'a, K, V>
Sourcepub fn key(&self) -> &K
pub fn key(&self) -> &K
Gets a reference to the entry’s key in the map.
Note that this is not the key that was used to find the entry. There may be an observable
difference if the key type has any distinguishing features outside of Hash and Eq, like
extra fields or the memory address of an allocation.
Sourcepub fn into_mut(self) -> &'a mut V
pub fn into_mut(self) -> &'a mut V
Converts into a mutable reference to the entry’s value in the map, with a lifetime bound to the map itself.
Sourcepub fn insert(&mut self, value: V) -> V
pub fn insert(&mut self, value: V) -> V
Sets the value of the entry to value, and returns the entry’s old value.
Sourcepub fn remove(self) -> V
pub fn remove(self) -> V
Remove the key, value pair stored in the map for this entry, and return the value.
Like VecDeque::remove, the pair is removed by shifting all of
the elements either before or after it, preserving their relative order.
This perturbs the index of all of the following elements!
Computes in O(n) time (average).
Sourcepub fn remove_entry(self) -> (K, V)
pub fn remove_entry(self) -> (K, V)
Remove and return the key, value pair stored in the map for this entry
Like VecDeque::remove, the pair is removed by shifting all of
the elements either before or after it, preserving their relative order.
This perturbs the index of all of the following elements!
Computes in O(n) time (average).
Sourcepub fn swap_remove_back(self) -> V
pub fn swap_remove_back(self) -> V
Remove the key, value pair stored in the map for this entry, and return the value.
Like VecDeque::swap_remove_back, the pair is removed
by swapping it with the last element of the map and popping it off.
This perturbs the position of what used to be the last element!
Computes in O(1) time (average).
Sourcepub fn swap_remove_back_entry(self) -> (K, V)
pub fn swap_remove_back_entry(self) -> (K, V)
Remove and return the key, value pair stored in the map for this entry
Like VecDeque::swap_remove_back, the pair is removed
by swapping it with the last element of the map and popping it off.
This perturbs the position of what used to be the last element!
Computes in O(1) time (average).
Sourcepub fn swap_remove_front(self) -> V
pub fn swap_remove_front(self) -> V
Remove the key, value pair stored in the map for this entry, and return the value.
Like VecDeque::swap_remove_front, the pair is removed
by swapping it with the front element of the map and popping it off.
This perturbs the position of what used to be the front element!
Computes in O(1) time (average).
Sourcepub fn swap_remove_front_entry(self) -> (K, V)
pub fn swap_remove_front_entry(self) -> (K, V)
Remove and return the key, value pair stored in the map for this entry
Like VecDeque::swap_remove_front, the pair is removed
by swapping it with the front element of the map and popping it off.
This perturbs the position of what used to be the front element!
Computes in O(1) time (average).
Sourcepub fn move_index(self, to: usize)
pub fn move_index(self, to: usize)
Moves the position of the entry to a new index by shifting all other entries in-between.
This is equivalent to RingMap::move_index
coming from the current .index().
- If
self.index() < to, the other pairs will shift down while the targeted pair moves up. - If
self.index() > to, the other pairs will shift up while the targeted pair moves down.
Panics if to is out of bounds.
Computes in O(n) time (average).
Sourcepub fn swap_indices(self, other: usize)
pub fn swap_indices(self, other: usize)
Swaps the position of entry with another.
This is equivalent to RingMap::swap_indices
with the current .index() as one of the two being swapped.
Panics if the other index is out of bounds.
Computes in O(1) time (average).
Trait Implementations§
Source§impl<'a, K, V> From<IndexedEntry<'a, K, V>> for OccupiedEntry<'a, K, V>
impl<'a, K, V> From<IndexedEntry<'a, K, V>> for OccupiedEntry<'a, K, V>
Source§fn from(other: IndexedEntry<'a, K, V>) -> Self
fn from(other: IndexedEntry<'a, K, V>) -> Self
Source§impl<'a, K, V> From<OccupiedEntry<'a, K, V>> for IndexedEntry<'a, K, V>
impl<'a, K, V> From<OccupiedEntry<'a, K, V>> for IndexedEntry<'a, K, V>
Source§fn from(other: OccupiedEntry<'a, K, V>) -> Self
fn from(other: OccupiedEntry<'a, K, V>) -> Self
Source§impl<K, V> MutableEntryKey for OccupiedEntry<'_, K, V>
Opt-in mutable access to OccupiedEntry keys.
impl<K, V> MutableEntryKey for OccupiedEntry<'_, K, V>
Opt-in mutable access to OccupiedEntry keys.
See MutableEntryKey for more information.
Auto Trait Implementations§
impl<'a, K, V> Freeze for OccupiedEntry<'a, K, V>
impl<'a, K, V> RefUnwindSafe for OccupiedEntry<'a, K, V>where
K: RefUnwindSafe,
V: RefUnwindSafe,
impl<'a, K, V> Send for OccupiedEntry<'a, K, V>
impl<'a, K, V> Sync for OccupiedEntry<'a, K, V>
impl<'a, K, V> Unpin for OccupiedEntry<'a, K, V>
impl<'a, K, V> !UnwindSafe for OccupiedEntry<'a, K, V>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more