pub enum Entry<'a, K, V, S, P>{
Occupied(OccupiedEntry<'a, K, V, S, P>),
Vacant(VacantEntry<'a, K, V, S, P>),
}
Expand description
A handle for a key and its associated value.
§Performance Note
When using an Entry
, the key is only ever hashed once, when you
create the Entry
. Operations on an Entry
will never trigger a
rehash, where eg. a contains_key(key)
followed by an
insert(key, default_value)
(the equivalent of
Entry::or_insert()
) would need to hash the key once for the
contains_key
and again for the insert
. The operations
generally perform similarly otherwise.
Variants§
Occupied(OccupiedEntry<'a, K, V, S, P>)
An entry which exists in the map.
Vacant(VacantEntry<'a, K, V, S, P>)
An entry which doesn’t exist in the map.
Implementations§
Source§impl<'a, K, V, S, P> Entry<'a, K, V, S, P>
impl<'a, K, V, S, P> Entry<'a, K, V, S, P>
Sourcepub fn or_insert(self, default: V) -> &'a mut V
pub fn or_insert(self, default: V) -> &'a mut V
Insert the default value provided if there was no value already, and return a mutable reference to the value.
Sourcepub fn or_insert_with<F>(self, default: F) -> &'a mut Vwhere
F: FnOnce() -> V,
pub fn or_insert_with<F>(self, default: F) -> &'a mut Vwhere
F: FnOnce() -> V,
Insert the default value from the provided function if there was no value already, and return a mutable reference to the value.
Sourcepub fn or_default(self) -> &'a mut Vwhere
V: Default,
pub fn or_default(self) -> &'a mut Vwhere
V: Default,
Insert a default value if there was no value already, and return a mutable reference to the value.
Sourcepub fn and_modify<F>(self, f: F) -> Entry<'a, K, V, S, P>
pub fn and_modify<F>(self, f: F) -> Entry<'a, K, V, S, P>
Call the provided function to modify the value if the value exists.
Auto Trait Implementations§
impl<'a, K, V, S, P> Freeze for Entry<'a, K, V, S, P>where
K: Freeze,
impl<'a, K, V, S, P> RefUnwindSafe for Entry<'a, K, V, S, P>
impl<'a, K, V, S, P> Send for Entry<'a, K, V, S, P>
impl<'a, K, V, S, P> Sync for Entry<'a, K, V, S, P>
impl<'a, K, V, S, P> Unpin for Entry<'a, K, V, S, P>where
K: Unpin,
impl<'a, K, V, S, P> !UnwindSafe for Entry<'a, K, V, S, P>
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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