Struct cranelift_bforest::Map

source ·
pub struct Map<K, V>
where K: Copy, V: Copy,
{ /* private fields */ }
Expand description

B-tree mapping from K to V.

This is not a general-purpose replacement for BTreeMap. See the module documentation for more information about design tradeoffs.

Maps can be cloned, but that operation should only be used as part of cloning the whole forest they belong to. Cloning a map does not allocate new memory for the clone. It creates an alias of the same memory.

Implementations§

source§

impl<K, V> Map<K, V>
where K: Copy, V: Copy,

source

pub fn new() -> Self

Make an empty map.

source

pub fn is_empty(&self) -> bool

Is this an empty map?

source

pub fn get<C: Comparator<K>>( &self, key: K, forest: &MapForest<K, V>, comp: &C, ) -> Option<V>

Get the value stored for key.

source

pub fn get_or_less<C: Comparator<K>>( &self, key: K, forest: &MapForest<K, V>, comp: &C, ) -> Option<(K, V)>

Look up the value stored for key.

If it exists, return the stored key-value pair.

Otherwise, return the last key-value pair with a key that is less than or equal to key.

If no stored keys are less than or equal to key, return None.

source

pub fn insert<C: Comparator<K>>( &mut self, key: K, value: V, forest: &mut MapForest<K, V>, comp: &C, ) -> Option<V>

Insert key, value into the map and return the old value stored for key, if any.

source

pub fn remove<C: Comparator<K>>( &mut self, key: K, forest: &mut MapForest<K, V>, comp: &C, ) -> Option<V>

Remove key from the map and return the removed value for key, if any.

source

pub fn clear(&mut self, forest: &mut MapForest<K, V>)

Remove all entries.

source

pub fn retain<F>(&mut self, forest: &mut MapForest<K, V>, predicate: F)
where F: FnMut(K, &mut V) -> bool,

Retains only the elements specified by the predicate.

Remove all key-value pairs where the predicate returns false.

The predicate is allowed to update the values stored in the map.

source

pub fn cursor<'a, C: Comparator<K>>( &'a mut self, forest: &'a mut MapForest<K, V>, comp: &'a C, ) -> MapCursor<'a, K, V, C>

Create a cursor for navigating this map. The cursor is initially positioned off the end of the map.

source

pub fn iter<'a>(&'a self, forest: &'a MapForest<K, V>) -> MapIter<'a, K, V>

Create an iterator traversing this map. The iterator type is (K, V).

Trait Implementations§

source§

impl<K, V> Clone for Map<K, V>
where K: Copy + Clone, V: Copy + Clone,

source§

fn clone(&self) -> Map<K, V>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<K, V> Default for Map<K, V>
where K: Copy, V: Copy,

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<K, V> Freeze for Map<K, V>

§

impl<K, V> RefUnwindSafe for Map<K, V>

§

impl<K, V> Send for Map<K, V>
where K: Send, V: Send,

§

impl<K, V> Sync for Map<K, V>
where K: Sync, V: Sync,

§

impl<K, V> Unpin for Map<K, V>
where K: Unpin, V: Unpin,

§

impl<K, V> UnwindSafe for Map<K, V>
where 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> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.