netstack3_base::ref_counted_hash_map

Struct RefCountedHashMap

Source
pub struct RefCountedHashMap<K, V> { /* private fields */ }
Expand description

A HashMap which keeps a reference count for each entry.

Implementations§

Source§

impl<K: Eq + Hash, V> RefCountedHashMap<K, V>

Source

pub fn insert_with<O, F: FnOnce() -> (V, O)>( &mut self, key: K, f: F, ) -> InsertResult<O>

Increments the reference count of the entry with the given key.

If the key isn’t in the map, the given function is called to create its associated value.

Source

pub fn remove(&mut self, key: K) -> RemoveResult<V>

Decrements the reference count of the entry with the given key.

If the reference count reaches 0, the entry will be removed and its value returned.

Source

pub fn contains_key(&self, key: &K) -> bool

Returns true if the map contains a value for the specified key.

Source

pub fn get(&self, key: &K) -> Option<&V>

Returns a reference to the value corresponding to the key.

Source

pub fn get_mut(&mut self, key: &K) -> Option<&mut V>

Returns a mutable reference to the value corresponding to the key.

Source

pub fn iter_mut<'a>( &'a mut self, ) -> impl 'a + Iterator<Item = (&'a K, &'a mut V)>

An iterator visiting all key-value pairs in arbitrary order, with mutable references to the values.

Trait Implementations§

Source§

impl<K: Debug, V: Debug> Debug for RefCountedHashMap<K, V>

Source§

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

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

impl<K, V> Default for RefCountedHashMap<K, V>

Source§

fn default() -> RefCountedHashMap<K, V>

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<K, V> Freeze for RefCountedHashMap<K, V>

§

impl<K, V> RefUnwindSafe for RefCountedHashMap<K, V>

§

impl<K, V> Send for RefCountedHashMap<K, V>
where K: Send, V: Send,

§

impl<K, V> Sync for RefCountedHashMap<K, V>
where K: Sync, V: Sync,

§

impl<K, V> Unpin for RefCountedHashMap<K, V>
where K: Unpin, V: Unpin,

§

impl<K, V> UnwindSafe for RefCountedHashMap<K, V>
where K: UnwindSafe, V: UnwindSafe,

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<O, BC> BuildableCoreContext<BC> for O
where O: Default,

Source§

type Builder = ()

The builder type that can build this core context.
Source§

fn build(_bindings_ctx: &mut BC, _: ()) -> O

Consumes this builder and returns the context.
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<CC, BC, Meta> RecvFrameContext<Meta, BC> for CC
where Meta: ReceivableFrameMeta<CC, BC>,

Source§

fn receive_frame<B>(&mut self, bindings_ctx: &mut BC, metadata: Meta, frame: B)
where B: BufferMut + Debug,

Receive a frame. Read more
Source§

impl<CC, BC, Meta> SendFrameContext<BC, Meta> for CC
where Meta: SendableFrameMeta<CC, BC>,

Source§

fn send_frame<S>( &mut self, bindings_ctx: &mut BC, metadata: Meta, frame: S, ) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>
where S: Serializer, <S as Serializer>::Buffer: BufferMut,

Send a frame. Read more
Source§

impl<Id, CC, BC> TimerHandler<BC, Id> for CC
where BC: TimerBindingsTypes, Id: HandleableTimer<CC, BC>,

Source§

fn handle_timer( &mut self, bindings_ctx: &mut BC, dispatch: Id, timer: <BC as TimerBindingsTypes>::UniqueTimerId, )

Handle a timer firing. Read more
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.
§

impl<L, T> UnlockedAccess<L> for T
where L: UnlockedAccessMarkerFor<T>,

§

type Data = <L as UnlockedAccessMarkerFor<T>>::Data

The type of state being accessed.
§

type Guard<'l> = &'l <L as UnlockedAccessMarkerFor<T>>::Data where T: 'l

A guard providing read access to the data.
§

fn access(&self) -> <T as UnlockedAccess<L>>::Guard<'_>

How to access the state.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<B, A> LockBefore<B> for A
where B: LockAfter<A>,