Skip to main content

EventMap

Trait EventMap 

Source
pub trait EventMap<K, V> {
    type Item;
    type Values<'a>: Iterator<Item = &'a V>
       where Self: 'a,
             K: 'a,
             V: 'a;

    // Required methods
    fn new() -> Self;
    fn get(&self, querry: &K) -> Option<&V>;
    fn values(&self) -> Self::Values<'_>;
    fn insert(&mut self, k: K, v: V) -> V;
    fn insert_with<F>(&mut self, k: K, f: F) -> V
       where F: FnOnce() -> V;
    fn remove(&mut self, querry: &K) -> Option<V>;
    fn clear(&mut self);
    fn is_empty(&self) -> bool;
}

Required Associated Types§

Source

type Item

Source

type Values<'a>: Iterator<Item = &'a V> where Self: 'a, K: 'a, V: 'a

Required Methods§

Source

fn new() -> Self

Source

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

Source

fn values(&self) -> Self::Values<'_>

Source

fn insert(&mut self, k: K, v: V) -> V

Don’t override existent entry, but return its values instead of the one wanted to insert

Source

fn insert_with<F>(&mut self, k: K, f: F) -> V
where F: FnOnce() -> V,

Source

fn remove(&mut self, querry: &K) -> Option<V>

Source

fn clear(&mut self)

Source

fn is_empty(&self) -> bool

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<K: RawEvent> EventMap<K, Arc<LedgerNode<K, EventBTreeMap<K>>>> for EventBTreeMap<K>

Source§

type Item = Arc<LedgerNode<K, EventBTreeMap<K>>>

Source§

type Values<'a> = Values<'a, K, <EventBTreeMap<K> as EventMap<K, Arc<LedgerNode<K, EventBTreeMap<K>>>>>::Item> where K: 'a, Self::Item: 'a

Source§

impl<K: RawEvent> EventMap<K, Arc<LedgerNode<K, EventHashMap<K>>>> for EventHashMap<K>

Source§

type Item = Arc<LedgerNode<K, EventHashMap<K>>>

Source§

type Values<'a> = Values<'a, K, <EventHashMap<K> as EventMap<K, Arc<LedgerNode<K, EventHashMap<K>>>>>::Item> where K: 'a

Source§

impl<K: RawEvent, const N: usize> EventMap<K, Arc<LedgerNode<K, SmallMap<K, N>>>> for SmallMap<K, N>

Source§

type Item = Arc<LedgerNode<K, SmallMap<K, N>>>

Source§

type Values<'a> = Map<Iter<'a, (K, <SmallMap<K, N> as EventMap<K, Arc<LedgerNode<K, SmallMap<K, N>>>>>::Item)>, fn(&(K, <SmallMap<K, N> as EventMap<K, Arc<LedgerNode<K, SmallMap<K, N>>>>>::Item)) -> &<SmallMap<K, N> as EventMap<K, Arc<LedgerNode<K, SmallMap<K, N>>>>>::Item> where K: 'a, Self::Item: 'a