[−][src]Trait symbolmap_trait::SymbolMap
A trait for a symbol table which can be indexed by a given key.
Behaves like a stack of HashMap
s.
Associated Types
type Value
The value stored in this symbol table
Required methods
fn insert(&mut self, key: K, value: Self::Value)
Insert a key/value pair into this symbol table at the current level
fn get<Q: ?Sized>(&self, key: &Q) -> Option<&Self::Value> where
Q: Hash + Eq,
K: Borrow<Q>,
Q: Hash + Eq,
K: Borrow<Q>,
Get the most recent definition of a key in this symbol table
fn is_empty(&self) -> bool
Whether this symbol table is empty
fn try_get_mut<Q: ?Sized>(&mut self, key: &Q) -> Option<&mut Self::Value> where
Q: Hash + Eq,
K: Borrow<Q>,
Q: Hash + Eq,
K: Borrow<Q>,
Try to get a mutable reference to the definition of a key in the top level of this symbol table
May fail for arbitrary reasons, to avoid, e.g., re-inserting the key at the top level as mutable.
fn push(&mut self)
Push a level onto this symbol table
fn pop(&mut self)
Pop a level from this symbol table
Note that this is not guaranteed to drop all elements stored in the level!
fn depth(&self) -> usize
Get the current depth of this symbol table
Provided methods
fn contains_key<Q: ?Sized>(&self, key: &Q) -> bool where
Q: Hash + Eq,
K: Borrow<Q>,
Q: Hash + Eq,
K: Borrow<Q>,
Whether this symbol table contains this key