EntryByVal

Struct EntryByVal 

Source
pub struct EntryByVal<'a, K: Eq + Hash, V> { /* private fields */ }
Expand description

An RAII guard providing exclusive access to a key-value pair in the LockMap.

When dropped, this type automatically unlocks the entry allowing other threads to access it.

§Type Parameters

  • 'a - Lifetime of the LockMap
  • K - Key type that must implement Eq + Hash
  • V - Value type

§Examples

use lockmap::LockMap;

let map = LockMap::new();
{
    // Get exclusive access to an entry
    let mut entry = map.entry("key");

    // Modify the value
    entry.insert(42);

    // EntryByVal is automatically unlocked when dropped
}

Implementations§

Source§

impl<K: Eq + Hash, V> EntryByVal<'_, K, V>

Source

pub fn key(&self) -> &K

Returns a reference to the entry’s key.

§Returns

A reference to the key associated with this entry.

Source

pub fn get(&self) -> &Option<V>

Returns a reference to the entry’s value.

§Returns

A reference to Some(V) if the entry has a value, or None if the entry is vacant.

Source

pub fn get_mut(&mut self) -> &mut Option<V>

Returns a mutable reference to the entry’s value.

§Returns

A mutable reference to Some(V) if the entry has a value, or None if the entry is vacant.

Source

pub fn insert(&mut self, value: V) -> Option<V>

Sets the value of the entry, returning the old value if it existed.

§Arguments
  • value - The new value to insert
§Returns

The previous value if the entry was occupied, or None if it was vacant.

Source

pub fn swap(&mut self, value: Option<V>) -> Option<V>

Swaps the value of the entry with the provided value.

§Arguments
  • value - The new value to swap in (wrapped in Option)
§Returns

The previous value of the entry.

Source

pub fn remove(&mut self) -> Option<V>

Removes the value from the entry, returning it if it existed.

§Returns

The value that was stored in the entry, or None if the entry was vacant.

Trait Implementations§

Source§

impl<K: Eq + Hash + Debug, V: Debug> Debug for EntryByVal<'_, K, V>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<K: Eq + Hash, V> Drop for EntryByVal<'_, K, V>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<'a, K, V> Freeze for EntryByVal<'a, K, V>
where K: Freeze,

§

impl<'a, K, V> !RefUnwindSafe for EntryByVal<'a, K, V>

§

impl<'a, K, V> !Send for EntryByVal<'a, K, V>

§

impl<'a, K, V> !Sync for EntryByVal<'a, K, V>

§

impl<'a, K, V> Unpin for EntryByVal<'a, K, V>
where K: Unpin,

§

impl<'a, K, V> !UnwindSafe for EntryByVal<'a, K, V>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.