Struct LightMap

Source
pub struct LightMap<K, V, S = DefaultHashBuilder> { /* private fields */ }
Expand description

A concurrent hashmap implementation thats always non-blocking.

Calls to get and insert are not async and since values are clone, they will never block another thread.

Implementations§

Source§

impl<K, V> LightMap<K, V>

Source

pub fn new() -> Self

Source

pub fn with_capacity(capacity: usize) -> Self

Source§

impl<K, V, S: BuildHasher> LightMap<K, V, S>

Source

pub fn with_hasher(build_hasher: S) -> Self

Source

pub fn with_capacity_and_hasher(capacity: usize, build_hasher: S) -> Self

Source§

impl<K, V, S> LightMap<K, V, S>

Source

pub fn len(&self) -> usize

Source§

impl<K, V, S> LightMap<K, V, S>
where K: Eq + Hash, S: BuildHasher, V: Clone,

Source

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

Source

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

Source

pub fn get_mut<'a>(&'a self, key: &'a K) -> GetMut<'a, K, V>

Note: Holding this refrence can block ALL operations on this shard

Its important to never hold this refrence for long periods of time espically past an await point

Source

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

Auto Trait Implementations§

§

impl<K, V, S> Freeze for LightMap<K, V, S>
where S: Freeze,

§

impl<K, V, S = BuildHasherDefault<AHasher>> !RefUnwindSafe for LightMap<K, V, S>

§

impl<K, V, S> Send for LightMap<K, V, S>
where S: Send, K: Send, V: Send,

§

impl<K, V, S> Sync for LightMap<K, V, S>
where S: Sync, K: Send + Sync, V: Send + Sync,

§

impl<K, V, S> Unpin for LightMap<K, V, S>
where S: Unpin,

§

impl<K, V, S> UnwindSafe for LightMap<K, V, S>
where S: UnwindSafe, 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<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.