[][src]Struct solana_runtime::accounts_cache::SlotCacheInner

pub struct SlotCacheInner { /* fields omitted */ }

Implementations

impl SlotCacheInner[src]

pub fn report_slot_store_metrics(&self)[src]

pub fn insert(&self, pubkey: &Pubkey, account: Account, hash: Hash)[src]

pub fn get_cloned(&self, pubkey: &Pubkey) -> Option<CachedAccount>[src]

pub fn mark_slot_frozen(&self)[src]

pub fn is_frozen(&self) -> bool[src]

Methods from Deref<Target = DashMap<Pubkey, CachedAccount>>

pub fn hash_usize<T>(&self, item: &T) -> usize where
    T: Hash
[src]

Hash a given item to produce a usize. Uses the provided or default HashBuilder.

pub fn hasher(&self) -> &S[src]

Returns a reference to the map's BuildHasher.

Examples

use dashmap::DashMap;
use ahash::RandomState;

let hasher = RandomState::new();
let map: DashMap<i32, i32> = DashMap::new();
let hasher: &RandomState = map.hasher();

pub fn insert(&self, key: K, value: V) -> Option<V>[src]

Inserts a key and a value into the map.

Locking behaviour: May deadlock if called when holding any sort of reference into the map.

Examples

use dashmap::DashMap;

let map = DashMap::new();
map.insert("I am the key!", "And I am the value!");

pub fn remove<Q>(&self, key: &Q) -> Option<(K, V)> where
    K: Borrow<Q>,
    Q: Hash + Eq + ?Sized
[src]

Removes an entry from the map, returning the key and value if they existed in the map.

Locking behaviour: May deadlock if called when holding any sort of reference into the map.

Examples

use dashmap::DashMap;

let soccer_team = DashMap::new();
soccer_team.insert("Jack", "Goalie");
assert_eq!(soccer_team.remove("Jack").unwrap().1, "Goalie");

pub fn remove_if<Q>(
    &self,
    key: &Q,
    f: impl FnOnce(&K, &V) -> bool
) -> Option<(K, V)> where
    K: Borrow<Q>,
    Q: Hash + Eq + ?Sized
[src]

Removes an entry from the map, returning the key and value if the entry existed and the provided conditional function returned true.

Locking behaviour: May deadlock if called when holding any sort of reference into the map.

use dashmap::DashMap;

let soccer_team = DashMap::new();
soccer_team.insert("Sam", "Forward");
soccer_team.remove_if("Sam", |_, position| position == &"Goalie");
assert!(soccer_team.contains_key("Sam"));
use dashmap::DashMap;

let soccer_team = DashMap::new();
soccer_team.insert("Sam", "Forward");
soccer_team.remove_if("Sam", |_, position| position == &"Forward");
assert!(!soccer_team.contains_key("Sam"));

pub fn iter(&'a self) -> Iter<'a, K, V, S, DashMap<K, V, S>>[src]

Creates an iterator over a DashMap yielding immutable references.

Locking behaviour: May deadlock if called when holding a mutable reference into the map.

Examples

use dashmap::DashMap;

let words = DashMap::new();
words.insert("hello", "world");
assert_eq!(words.iter().count(), 1);

pub fn iter_mut(&'a self) -> IterMut<'a, K, V, S, DashMap<K, V, S>>[src]

Iterator over a DashMap yielding mutable references.

Locking behaviour: May deadlock if called when holding any sort of reference into the map.

Examples

use dashmap::DashMap;

let map = DashMap::new();
map.insert("Johnny", 21);
map.iter_mut().for_each(|mut r| *r += 1);
assert_eq!(*map.get("Johnny").unwrap(), 22);

pub fn get<Q>(&'a self, key: &Q) -> Option<Ref<'a, K, V, S>> where
    K: Borrow<Q>,
    Q: Hash + Eq + ?Sized
[src]

Get a immutable reference to an entry in the map

Locking behaviour: May deadlock if called when holding a mutable reference into the map.

Examples

use dashmap::DashMap;

let youtubers = DashMap::new();
youtubers.insert("Bosnian Bill", 457000);
assert_eq!(*youtubers.get("Bosnian Bill").unwrap(), 457000);

pub fn get_mut<Q>(&'a self, key: &Q) -> Option<RefMut<'a, K, V, S>> where
    K: Borrow<Q>,
    Q: Hash + Eq + ?Sized
[src]

Get a mutable reference to an entry in the map

Locking behaviour: May deadlock if called when holding any sort of reference into the map.

Examples

use dashmap::DashMap;

let class = DashMap::new();
class.insert("Albin", 15);
*class.get_mut("Albin").unwrap() -= 1;
assert_eq!(*class.get("Albin").unwrap(), 14);

pub fn shrink_to_fit(&self)[src]

Remove excess capacity to reduce memory usage.

Locking behaviour: May deadlock if called when holding any sort of reference into the map.

pub fn retain(&self, f: impl FnMut(&K, &mut V) -> bool)[src]

Retain elements that whose predicates return true and discard elements whose predicates return false.

Locking behaviour: May deadlock if called when holding any sort of reference into the map.

Examples

use dashmap::DashMap;

let people = DashMap::new();
people.insert("Albin", 15);
people.insert("Jones", 22);
people.insert("Charlie", 27);
people.retain(|_, v| *v > 20);
assert_eq!(people.len(), 2);

pub fn len(&self) -> usize[src]

Fetches the total number of key-value pairs stored in the map.

Locking behaviour: May deadlock if called when holding a mutable reference into the map.

Examples

use dashmap::DashMap;

let people = DashMap::new();
people.insert("Albin", 15);
people.insert("Jones", 22);
people.insert("Charlie", 27);
assert_eq!(people.len(), 3);

pub fn is_empty(&self) -> bool[src]

Checks if the map is empty or not.

Locking behaviour: May deadlock if called when holding a mutable reference into the map.

Examples

use dashmap::DashMap;

let map = DashMap::<(), ()>::new();
assert!(map.is_empty());

pub fn clear(&self)[src]

Removes all key-value pairs in the map.

Locking behaviour: May deadlock if called when holding any sort of reference into the map.

Examples

use dashmap::DashMap;

let stats = DashMap::new();
stats.insert("Goals", 4);
assert!(!stats.is_empty());
stats.clear();
assert!(stats.is_empty());

pub fn capacity(&self) -> usize[src]

Returns how many key-value pairs the map can store without reallocating.

Locking behaviour: May deadlock if called when holding a mutable reference into the map.

pub fn alter<Q>(&self, key: &Q, f: impl FnOnce(&K, V) -> V) where
    K: Borrow<Q>,
    Q: Hash + Eq + ?Sized
[src]

Modify a specific value according to a function.

Locking behaviour: May deadlock if called when holding any sort of reference into the map.

Examples

use dashmap::DashMap;

let stats = DashMap::new();
stats.insert("Goals", 4);
stats.alter("Goals", |_, v| v * 2);
assert_eq!(*stats.get("Goals").unwrap(), 8);

Panics

If the given closure panics, then alter_all will abort the process

pub fn alter_all(&self, f: impl FnMut(&K, V) -> V)[src]

Modify every value in the map according to a function.

Locking behaviour: May deadlock if called when holding any sort of reference into the map.

Examples

use dashmap::DashMap;

let stats = DashMap::new();
stats.insert("Wins", 4);
stats.insert("Losses", 2);
stats.alter_all(|_, v| v + 1);
assert_eq!(*stats.get("Wins").unwrap(), 5);
assert_eq!(*stats.get("Losses").unwrap(), 3);

Panics

If the given closure panics, then alter_all will abort the process

pub fn contains_key<Q>(&self, key: &Q) -> bool where
    K: Borrow<Q>,
    Q: Hash + Eq + ?Sized
[src]

Checks if the map contains a specific key.

Locking behaviour: May deadlock if called when holding a mutable reference into the map.

Examples

use dashmap::DashMap;

let team_sizes = DashMap::new();
team_sizes.insert("Dakota Cherries", 23);
assert!(team_sizes.contains_key("Dakota Cherries"));

pub fn entry(&'a self, key: K) -> Entry<'a, K, V, S>[src]

Advanced entry API that tries to mimic std::collections::HashMap. See the documentation on dashmap::mapref::entry for more details.

Locking behaviour: May deadlock if called when holding any sort of reference into the map.

Trait Implementations

impl Debug for SlotCacheInner[src]

impl Default for SlotCacheInner[src]

impl Deref for SlotCacheInner[src]

type Target = DashMap<Pubkey, CachedAccount>

The resulting type after dereferencing.

Auto Trait Implementations

Blanket Implementations

impl<T> AbiExample for T[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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