Struct OccupiedEntry
pub struct OccupiedEntry<'a, K, V, A: Allocator + Clone = Global> { pub(in ::collections::btree::map) handle: Handle<NodeRef<Mut<'a>, K, V, LeafOrInternal>, KV>, pub(in ::collections::btree::map) dormant_map: DormantMutRef<'a, BTreeMap<K, V, A>>, pub(in ::collections::btree::map) alloc: A, pub(in ::collections::btree::map) _marker: PhantomData<&'a mut (K, V)> }
A view into an occupied entry in a BTreeMap.
It is part of the Entry enum.
Fields
handle: Handle<NodeRef<Mut<'a>, K, V, LeafOrInternal>, KV>dormant_map: DormantMutRef<'a, BTreeMap<K, V, A>>alloc: AThe BTreeMap will outlive this IntoIter so we don't care about drop order for
alloc._marker: PhantomData<&'a mut (K, V)>
Implementations
impl<'a, K: Ord, V, A: Allocator + Clone> OccupiedEntry<'a, K, V, A>
fn key(&self) -> &KGets a reference to the key in the entry.
Examples
use BTreeMap; let mut map: = new; map.entry.or_insert; assert_eq!;fn into_key(self) -> &'a KConverts the entry into a reference to its key.
fn remove_entry(self) -> (K, V)Take ownership of the key and value from the map.
Examples
use BTreeMap; use Entry; let mut map: = new; map.entry.or_insert; if let Occupied = map.entry // If now try to get the value, it will panic: // println!("{}", map["poneyland"]);fn get(&self) -> &VGets a reference to the value in the entry.
Examples
use BTreeMap; use Entry; let mut map: = new; map.entry.or_insert; if let Occupied = map.entryfn get_mut(&mut self) -> &mut VGets a mutable reference to the value in the entry.
If you need a reference to the
OccupiedEntrythat may outlive the destruction of theEntryvalue, seeinto_mut.Examples
use BTreeMap; use Entry; let mut map: = new; map.entry.or_insert; assert_eq!; if let Occupied = map.entry assert_eq!;fn into_mut(self) -> &'a mut VConverts the entry into a mutable reference to its value.
If you need multiple references to the
OccupiedEntry, seeget_mut.Examples
use BTreeMap; use Entry; let mut map: = new; map.entry.or_insert; assert_eq!; if let Occupied = map.entry assert_eq!;fn insert(&mut self, value: V) -> VSets the value of the entry with the
OccupiedEntry's key, and returns the entry's old value.Examples
use BTreeMap; use Entry; let mut map: = new; map.entry.or_insert; if let Occupied = map.entry assert_eq!;fn remove(self) -> VTakes the value of the entry out of the map, and returns it.
Examples
use BTreeMap; use Entry; let mut map: = new; map.entry.or_insert; if let Occupied = map.entry // If we try to get "poneyland"'s value, it'll panic: // println!("{}", map["poneyland"]);fn remove_kv(self) -> (K, V)
Trait Implementations
impl<K: Debug + Ord, V: Debug, A: Allocator + Clone> Debug for OccupiedEntry<'_, K, V, A>
fn fmt(&self, f: &mut Formatter<'_>) -> Result
Auto Trait Implementations
impl<'a, K, V, A = Global> !UnwindSafe for OccupiedEntry<'a, K, V, A>
impl<'a, K, V, A> Freeze for OccupiedEntry<'a, K, V, A>
where
Handle<NodeRef<Mut<'a>, K, V, LeafOrInternal>, KV>: Freeze,
DormantMutRef<'a, BTreeMap<K, V, A>>: Freeze,
A: Freeze,
PhantomData<&'a mut (K, V)>: Freeze,
impl<'a, K, V, A> RefUnwindSafe for OccupiedEntry<'a, K, V, A>
where
Handle<NodeRef<Mut<'a>, K, V, LeafOrInternal>, KV>: RefUnwindSafe,
DormantMutRef<'a, BTreeMap<K, V, A>>: RefUnwindSafe,
A: RefUnwindSafe,
PhantomData<&'a mut (K, V)>: RefUnwindSafe,
impl<'a, K, V, A> Send for OccupiedEntry<'a, K, V, A>
where
Handle<NodeRef<Mut<'a>, K, V, LeafOrInternal>, KV>: Send,
DormantMutRef<'a, BTreeMap<K, V, A>>: Send,
A: Send,
PhantomData<&'a mut (K, V)>: Send,
impl<'a, K, V, A> Sync for OccupiedEntry<'a, K, V, A>
where
Handle<NodeRef<Mut<'a>, K, V, LeafOrInternal>, KV>: Sync,
DormantMutRef<'a, BTreeMap<K, V, A>>: Sync,
A: Sync,
PhantomData<&'a mut (K, V)>: Sync,
impl<'a, K, V, A> Unpin for OccupiedEntry<'a, K, V, A>
where
Handle<NodeRef<Mut<'a>, K, V, LeafOrInternal>, KV>: Unpin,
DormantMutRef<'a, BTreeMap<K, V, A>>: Unpin,
A: Unpin,
PhantomData<&'a mut (K, V)>: Unpin,
impl<'a, K, V, A> UnsafeUnpin for OccupiedEntry<'a, K, V, A>
where
Handle<NodeRef<Mut<'a>, K, V, LeafOrInternal>, KV>: UnsafeUnpin,
DormantMutRef<'a, BTreeMap<K, V, A>>: UnsafeUnpin,
A: UnsafeUnpin,
PhantomData<&'a mut (K, V)>: UnsafeUnpin,
Blanket Implementations
impl<T> Any for OccupiedEntry<'a, K, V, A>
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for OccupiedEntry<'a, K, V, A>
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for OccupiedEntry<'a, K, V, A>
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> From<T> for OccupiedEntry<'a, K, V, A>
fn from(t: T) -> TReturns the argument unchanged.
impl<T> SizeHint for OccupiedEntry<'a, K, V, A>
where
T: ?Sized,
fn lower_bound(&self) -> usizefn upper_bound(&self) -> Option<usize>
impl<T> SizedTypeProperties for OccupiedEntry<'a, K, V, A>
impl<T, U> Into<U> for OccupiedEntry<'a, K, V, A>
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for OccupiedEntry<'a, K, V, A>
where
U: Into<T>,
type Error = Infallible;fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto<U> for OccupiedEntry<'a, K, V, A>
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>