Struct OccupiedEntry
struct OccupiedEntry<'a, K, V> { ... }
A view into an occupied entry in an [IndexMap][crate::IndexMap].
It is part of the Entry enum.
Implementations
impl<'a, K, V> OccupiedEntry<'a, K, V>
fn index(self: &Self) -> usizeReturn the index of the key-value pair
fn key(self: &Self) -> &KGets 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
HashandEq, like extra fields or the memory address of an allocation.fn get(self: &Self) -> &VGets a reference to the entry's value in the map.
fn get_mut(self: &mut Self) -> &mut VGets a mutable reference to the entry's value in the map.
If you need a reference which may outlive the destruction of the
Entryvalue, see [into_mut][Self::into_mut].fn into_mut(self: Self) -> &'a mut VConverts into a mutable reference to the entry's value in the map, with a lifetime bound to the map itself.
fn insert(self: &mut Self, value: V) -> VSets the value of the entry to
value, and returns the entry's old value.fn remove(self: Self) -> VRemove the key, value pair stored in the map for this entry, and return the value.
NOTE: This is equivalent to [
.swap_remove()][Self::swap_remove], replacing this entry's position with the last element, and it is deprecated in favor of calling that explicitly. If you need to preserve the relative order of the keys in the map, use [.shift_remove()][Self::shift_remove] instead.fn swap_remove(self: Self) -> VRemove the key, value pair stored in the map for this entry, and return the value.
Like [
Vec::swap_remove][crate::Vec::swap_remove], 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).
fn shift_remove(self: Self) -> VRemove the key, value pair stored in the map for this entry, and return the value.
Like [
Vec::remove][crate::Vec::remove], the pair is removed by shifting all of the elements that follow it, preserving their relative order. This perturbs the index of all of those elements!Computes in O(n) time (average).
fn remove_entry(self: Self) -> (K, V)Remove and return the key, value pair stored in the map for this entry
NOTE: This is equivalent to [
.swap_remove_entry()][Self::swap_remove_entry], replacing this entry's position with the last element, and it is deprecated in favor of calling that explicitly. If you need to preserve the relative order of the keys in the map, use [.shift_remove_entry()][Self::shift_remove_entry] instead.fn swap_remove_entry(self: Self) -> (K, V)Remove and return the key, value pair stored in the map for this entry
Like [
Vec::swap_remove][crate::Vec::swap_remove], 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).
fn shift_remove_entry(self: Self) -> (K, V)Remove and return the key, value pair stored in the map for this entry
Like [
Vec::remove][crate::Vec::remove], the pair is removed by shifting all of the elements that follow it, preserving their relative order. This perturbs the index of all of those elements!Computes in O(n) time (average).
fn move_index(self: Self, to: usize)Moves the position of the entry to a new index by shifting all other entries in-between.
This is equivalent to [
IndexMap::move_index]crate::IndexMap::move_indexcomingfromthe current [.index()][Self::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
tois out of bounds.Computes in O(n) time (average).
- If
fn swap_indices(self: Self, other: usize)Swaps the position of entry with another.
This is equivalent to [
IndexMap::swap_indices]crate::IndexMap::swap_indiceswith the current [.index()][Self::index] as one of the two being swapped.Panics if the
otherindex is out of bounds.Computes in O(1) time (average).
impl<'a, K, V> Freeze for OccupiedEntry<'a, K, V>
impl<'a, K, V> From for OccupiedEntry<'a, K, V>
fn from(other: IndexedEntry<'a, K, V>) -> Self
impl<'a, K, V> RefUnwindSafe for OccupiedEntry<'a, K, V>
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> UnsafeUnpin for OccupiedEntry<'a, K, V>
impl<'a, K, V> UnwindSafe for OccupiedEntry<'a, K, V>
impl<K, V> MutableEntryKey for OccupiedEntry<'_, K, V>
fn key_mut(self: &mut Self) -> &mut <Self as >::Key
impl<K: fmt::Debug, V: fmt::Debug> Debug for OccupiedEntry<'_, K, V>
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl<T> Any for OccupiedEntry<'a, K, V>
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for OccupiedEntry<'a, K, V>
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for OccupiedEntry<'a, K, V>
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> From for OccupiedEntry<'a, K, V>
fn from(t: T) -> TReturns the argument unchanged.
impl<T, U> Into for OccupiedEntry<'a, K, V>
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for OccupiedEntry<'a, K, V>
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for OccupiedEntry<'a, K, V>
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>