Enum Entry
pub enum Entry<'a, K: 'a, V: 'a, A: Allocator + Clone = Global>
A view into a single entry in a map, which may either be vacant or occupied.
Variants
-
Vacant(VacantEntry<'a, K, V, A>) A vacant entry.
-
Occupied(OccupiedEntry<'a, K, V, A>) An occupied entry.
Implementations
impl<'a, K: Ord, V, A: Allocator + Clone> Entry<'a, K, V, A>
fn or_insert(self, default: V) -> &'a mut VEnsures a value is in the entry by inserting the default if empty, and returns a mutable reference to the value in the entry.
Examples
use BTreeMap; let mut map: = new; map.entry.or_insert; assert_eq!;fn or_insert_with<F: FnOnce() -> V>(self, default: F) -> &'a mut VEnsures a value is in the entry by inserting the result of the default function if empty, and returns a mutable reference to the value in the entry.
Examples
use BTreeMap; let mut map: = new; let s = "hoho".to_string; map.entry.or_insert_with; assert_eq!;fn or_try_insert_with<F: FnOnce() -> Result<V, E>, E>(self, default: F) -> Result<&'a mut V, E>Ensures a value is in the entry by inserting the result of a fallible default function if empty, and returns a mutable reference to the value in the entry.
This method works identically to
or_insert_withexcept that the default function should return aResultand, in the case of an error, the error is propagated.Examples
#fn or_insert_with_key<F: FnOnce(&K) -> V>(self, default: F) -> &'a mut VEnsures a value is in the entry by inserting, if empty, the result of the default function.
This method allows for generating key-derived values for insertion by providing the default function a reference to the key that was moved during the
.entry(key)method call.The reference to the moved key is provided so that cloning or copying the key is unnecessary, unlike with
.or_insert_with(|| ... ).Examples
use BTreeMap; let mut map: = new; map.entry.or_insert_with_key; assert_eq!;fn or_try_insert_with_key<F: FnOnce(&K) -> Result<V, E>, E>(self, default: F) -> Result<&'a mut V, E>Ensures a value is in the entry by inserting, if empty, the result of the default function. This method allows for generating key-derived values for insertion by providing the default function a reference to the key that was moved during the
entry(key)method call.This method works identically to
or_insert_with_keyexcept that the default function should return aResultand, in the case of an error, the error is propagated.Examples
#fn key(&self) -> &KReturns a reference to this entry's key.
Examples
use BTreeMap; let mut map: = new; assert_eq!;fn and_modify<F>(self, f: F) -> Self where F: FnOnce(&mut V),Provides in-place mutable access to an occupied entry before any potential inserts into the map.
Examples
use BTreeMap; let mut map: = new; map.entry .and_modify .or_insert; assert_eq!; map.entry .and_modify .or_insert; assert_eq!;fn insert_entry(self, value: V) -> OccupiedEntry<'a, K, V, A>Sets the value of the entry, and returns an
OccupiedEntry.Examples
use BTreeMap; let mut map: = new; let entry = map.entry.insert_entry; assert_eq!;
impl<'a, K: Ord, V: Default, A: Allocator + Clone> Entry<'a, K, V, A>
fn or_default(self) -> &'a mut VEnsures a value is in the entry by inserting the default value if empty, and returns a mutable reference to the value in the entry.
Examples
use BTreeMap; let mut map: = new; map.entry.or_default; assert_eq!;
Trait Implementations
impl<K: Debug + Ord, V: Debug, A: Allocator + Clone> Debug for Entry<'_, K, V, A>
fn fmt(&self, f: &mut Formatter<'_>) -> Result
Auto Trait Implementations
impl<'a, K, V, A = Global> !UnwindSafe for Entry<'a, K, V, A>
impl<'a, K, V, A> Freeze for Entry<'a, K, V, A>
where
VacantEntry<'a, K, V, A>: Freeze,
OccupiedEntry<'a, K, V, A>: Freeze,
impl<'a, K, V, A> RefUnwindSafe for Entry<'a, K, V, A>
where
VacantEntry<'a, K, V, A>: RefUnwindSafe,
OccupiedEntry<'a, K, V, A>: RefUnwindSafe,
impl<'a, K, V, A> Send for Entry<'a, K, V, A>
where
VacantEntry<'a, K, V, A>: Send,
OccupiedEntry<'a, K, V, A>: Send,
impl<'a, K, V, A> Sync for Entry<'a, K, V, A>
where
VacantEntry<'a, K, V, A>: Sync,
OccupiedEntry<'a, K, V, A>: Sync,
impl<'a, K, V, A> Unpin for Entry<'a, K, V, A>
where
VacantEntry<'a, K, V, A>: Unpin,
OccupiedEntry<'a, K, V, A>: Unpin,
impl<'a, K, V, A> UnsafeUnpin for Entry<'a, K, V, A>
where
VacantEntry<'a, K, V, A>: UnsafeUnpin,
OccupiedEntry<'a, K, V, A>: UnsafeUnpin,
Blanket Implementations
impl<T> Any for Entry<'a, K, V, A>
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for Entry<'a, K, V, A>
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for Entry<'a, K, V, A>
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> From<T> for Entry<'a, K, V, A>
fn from(t: T) -> TReturns the argument unchanged.
impl<T> SizeHint for Entry<'a, K, V, A>
where
T: ?Sized,
fn lower_bound(&self) -> usizefn upper_bound(&self) -> Option<usize>
impl<T> SizedTypeProperties for Entry<'a, K, V, A>
impl<T, U> Into<U> for Entry<'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 Entry<'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 Entry<'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>