rustc_const_eval::interpret::machine

Trait AllocMap

source
pub trait AllocMap<K: Hash + Eq, V> {
    // Required methods
    fn contains_key<Q: ?Sized + Hash + Eq>(&mut self, k: &Q) -> bool
       where K: Borrow<Q>;
    fn contains_key_ref<Q: ?Sized + Hash + Eq>(&self, k: &Q) -> bool
       where K: Borrow<Q>;
    fn insert(&mut self, k: K, v: V) -> Option<V>;
    fn remove<Q: ?Sized + Hash + Eq>(&mut self, k: &Q) -> Option<V>
       where K: Borrow<Q>;
    fn filter_map_collect<T>(
        &self,
        f: impl FnMut(&K, &V) -> Option<T>,
    ) -> Vec<T>;
    fn get_or<E>(
        &self,
        k: K,
        vacant: impl FnOnce() -> Result<V, E>,
    ) -> Result<&V, E>;
    fn get_mut_or<E>(
        &mut self,
        k: K,
        vacant: impl FnOnce() -> Result<V, E>,
    ) -> Result<&mut V, E>;

    // Provided methods
    fn get(&self, k: K) -> Option<&V> { ... }
    fn get_mut(&mut self, k: K) -> Option<&mut V> { ... }
}
Expand description

The functionality needed by memory to manage its allocations

Required Methods§

source

fn contains_key<Q: ?Sized + Hash + Eq>(&mut self, k: &Q) -> bool
where K: Borrow<Q>,

Tests if the map contains the given key. Deliberately takes &mut because that is sufficient, and some implementations can be more efficient then (using RefCell::get_mut).

source

fn contains_key_ref<Q: ?Sized + Hash + Eq>(&self, k: &Q) -> bool
where K: Borrow<Q>,

Callers should prefer AllocMap::contains_key when it is possible to call because it may be more efficient. This function exists for callers that only have a shared reference (which might make it slightly less efficient than contains_key, e.g. if the data is stored inside a RefCell).

source

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

Inserts a new entry into the map.

source

fn remove<Q: ?Sized + Hash + Eq>(&mut self, k: &Q) -> Option<V>
where K: Borrow<Q>,

Removes an entry from the map.

source

fn filter_map_collect<T>(&self, f: impl FnMut(&K, &V) -> Option<T>) -> Vec<T>

Returns data based on the keys and values in the map.

source

fn get_or<E>( &self, k: K, vacant: impl FnOnce() -> Result<V, E>, ) -> Result<&V, E>

Returns a reference to entry k. If no such entry exists, call vacant and either forward its error, or add its result to the map and return a reference to that.

source

fn get_mut_or<E>( &mut self, k: K, vacant: impl FnOnce() -> Result<V, E>, ) -> Result<&mut V, E>

Returns a mutable reference to entry k. If no such entry exists, call vacant and either forward its error, or add its result to the map and return a reference to that.

Provided Methods§

source

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

Read-only lookup.

source

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

Mutable lookup.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<K: Hash + Eq, V> AllocMap<K, V> for FxIndexMap<K, V>

source§

fn contains_key<Q: ?Sized + Hash + Eq>(&mut self, k: &Q) -> bool
where K: Borrow<Q>,

source§

fn contains_key_ref<Q: ?Sized + Hash + Eq>(&self, k: &Q) -> bool
where K: Borrow<Q>,

source§

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

source§

fn remove<Q: ?Sized + Hash + Eq>(&mut self, k: &Q) -> Option<V>
where K: Borrow<Q>,

source§

fn filter_map_collect<T>(&self, f: impl FnMut(&K, &V) -> Option<T>) -> Vec<T>

source§

fn get_or<E>( &self, k: K, vacant: impl FnOnce() -> Result<V, E>, ) -> Result<&V, E>

source§

fn get_mut_or<E>( &mut self, k: K, vacant: impl FnOnce() -> Result<V, E>, ) -> Result<&mut V, E>

Implementors§