pub struct BTreeIndexMultiMap<K, V> { /* private fields */ }Expand description
BTree-based multi-map with stable entry indices.
Each key may map to any number of values. Entries are stored in a
Vec and assigned a stable index equal to their position in that
Vec. The index of an entry does not change as long as no entry is
removed. A B-tree over the keys provides O(log n) lookup, insertion,
and removal, while the Vec backing allows O(1) random access by
index.
§Example
use btree_indexmap::BTreeIndexMultiMap;
let mut map = BTreeIndexMultiMap::new();
// Multiple values per key, each with its own stable index.
map.push_back("fruit", "apple");
map.push_back("veggie", "carrot");
map.push_back("fruit", "banana");
assert_eq!(map.key_occurences("fruit"), 2);
let fruits: Vec<_> = map.get("fruit").copied().collect();
assert_eq!(fruits, ["apple", "banana"]);Implementations§
Source§impl<K, V> BTreeIndexMultiMap<K, V>
impl<K, V> BTreeIndexMultiMap<K, V>
Sourcepub fn with_capacity(cap: usize) -> Self
pub fn with_capacity(cap: usize) -> Self
Creates a new, empty multi-map with space reserved for at least
cap entries.
Sourcepub fn singleton(key: K, value: V) -> Selfwhere
K: Ord,
pub fn singleton(key: K, value: V) -> Selfwhere
K: Ord,
Creates a new multi-map containing the single (key, value) entry.
Sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Removes all entries from the map.
This keeps the capacity allocated for the entries.
Sourcepub fn capacity(&self) -> usize
pub fn capacity(&self) -> usize
Returns the number of entries the map can hold without reallocating.
Sourcepub fn as_entries(&self) -> &[(K, V)]
pub fn as_entries(&self) -> &[(K, V)]
Returns the entries of the map as a slice, in insertion (index) order.
Sourcepub fn first(&self) -> Option<(&K, &V)>
pub fn first(&self) -> Option<(&K, &V)>
Returns the key and value of the first entry in the map (in insertion order), if any.
Sourcepub fn last(&self) -> Option<(&K, &V)>
pub fn last(&self) -> Option<(&K, &V)>
Returns the key and value of the last entry in the map (in insertion order), if any.
Sourcepub fn contains_key<Q>(&self, key: &Q) -> boolwhere
Q: ?Sized + Comparable<K>,
pub fn contains_key<Q>(&self, key: &Q) -> boolwhere
Q: ?Sized + Comparable<K>,
Returns true if the map contains at least one entry for key.
Sourcepub fn key_occurences<Q>(&self, key: &Q) -> usizewhere
Q: ?Sized + Comparable<K>,
pub fn key_occurences<Q>(&self, key: &Q) -> usizewhere
Q: ?Sized + Comparable<K>,
Returns the number of entries associated with key.
Sourcepub fn indexes_of<Q>(&self, key: &Q) -> IndexesIter<'_> ⓘwhere
Q: ?Sized + Comparable<K>,
pub fn indexes_of<Q>(&self, key: &Q) -> IndexesIter<'_> ⓘwhere
Q: ?Sized + Comparable<K>,
Returns an iterator over the indexes of every entry associated with
key.
Sourcepub fn index_of<Q>(&self, key: &Q) -> Option<usize>where
Q: ?Sized + Comparable<K>,
pub fn index_of<Q>(&self, key: &Q) -> Option<usize>where
Q: ?Sized + Comparable<K>,
Returns the index of the first entry associated with key.
Sourcepub fn get_indexed_entries<Q>(&self, key: &Q) -> GetIndexedEntries<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
pub fn get_indexed_entries<Q>(&self, key: &Q) -> GetIndexedEntries<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
Returns an iterator over (index, &key, &value) for every entry
associated with key.
Sourcepub fn get_or_insert_indexed_entries_with(
&mut self,
key: K,
f: impl FnOnce() -> V,
) -> GetIndexedEntries<'_, K, V> ⓘwhere
K: Ord,
pub fn get_or_insert_indexed_entries_with(
&mut self,
key: K,
f: impl FnOnce() -> V,
) -> GetIndexedEntries<'_, K, V> ⓘwhere
K: Ord,
Returns an iterator over (index, &key, &value) for every entry
associated with key, inserting a single new entry with a value
produced by f if key was not already present.
Sourcepub fn get_or_insert_indexed_entries(
&mut self,
key: K,
value: V,
) -> GetIndexedEntries<'_, K, V> ⓘwhere
K: Ord,
pub fn get_or_insert_indexed_entries(
&mut self,
key: K,
value: V,
) -> GetIndexedEntries<'_, K, V> ⓘwhere
K: Ord,
Returns an iterator over (index, &key, &value) for every entry
associated with key, inserting a single new entry with value if
key was not already present.
Sourcepub fn get_entries<Q>(&self, key: &Q) -> GetEntries<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
pub fn get_entries<Q>(&self, key: &Q) -> GetEntries<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
Returns an iterator over (&key, &value) for every entry associated
with key.
Sourcepub fn get_or_insert_entries_with(
&mut self,
key: K,
f: impl FnOnce() -> V,
) -> GetEntries<'_, K, V> ⓘwhere
K: Ord,
pub fn get_or_insert_entries_with(
&mut self,
key: K,
f: impl FnOnce() -> V,
) -> GetEntries<'_, K, V> ⓘwhere
K: Ord,
Returns an iterator over (&key, &value) for every entry associated
with key, inserting a single new entry with a value produced by
f if key was not already present.
Sourcepub fn get_or_insert_entries(
&mut self,
key: K,
value: V,
) -> GetEntries<'_, K, V> ⓘwhere
K: Ord,
pub fn get_or_insert_entries(
&mut self,
key: K,
value: V,
) -> GetEntries<'_, K, V> ⓘwhere
K: Ord,
Returns an iterator over (&key, &value) for every entry associated
with key, inserting a single new entry with value if key was
not already present.
Sourcepub fn get<Q>(&self, key: &Q) -> Get<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
pub fn get<Q>(&self, key: &Q) -> Get<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
Returns an iterator over a reference to the value of every entry
associated with key.
Sourcepub fn get_or_insert_with(
&mut self,
key: K,
f: impl FnOnce() -> V,
) -> Get<'_, K, V> ⓘwhere
K: Ord,
pub fn get_or_insert_with(
&mut self,
key: K,
f: impl FnOnce() -> V,
) -> Get<'_, K, V> ⓘwhere
K: Ord,
Returns an iterator over a reference to the value of every entry
associated with key, inserting a single new entry with a value
produced by f if key was not already present.
Sourcepub fn get_or_insert(&mut self, key: K, value: V) -> Get<'_, K, V> ⓘwhere
K: Ord,
pub fn get_or_insert(&mut self, key: K, value: V) -> Get<'_, K, V> ⓘwhere
K: Ord,
Returns an iterator over a reference to the value of every entry
associated with key, inserting a single new entry with value if
key was not already present.
Sourcepub fn get_indexed<Q>(&self, key: &Q) -> GetIndexed<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
pub fn get_indexed<Q>(&self, key: &Q) -> GetIndexed<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
Returns an iterator over (index, &value) for every entry
associated with key.
Sourcepub fn get_or_insert_indexed_with(
&mut self,
key: K,
f: impl FnOnce() -> V,
) -> GetIndexed<'_, K, V> ⓘwhere
K: Ord,
pub fn get_or_insert_indexed_with(
&mut self,
key: K,
f: impl FnOnce() -> V,
) -> GetIndexed<'_, K, V> ⓘwhere
K: Ord,
Returns an iterator over (index, &value) for every entry
associated with key, inserting a single new entry with a value
produced by f if key was not already present.
Sourcepub fn get_or_insert_indexed(
&mut self,
key: K,
value: V,
) -> GetIndexed<'_, K, V> ⓘwhere
K: Ord,
pub fn get_or_insert_indexed(
&mut self,
key: K,
value: V,
) -> GetIndexed<'_, K, V> ⓘwhere
K: Ord,
Returns an iterator over (index, &value) for every entry
associated with key, inserting a single new entry with value if
key was not already present.
Sourcepub fn get_indexed_entries_mut<Q>(
&mut self,
key: &Q,
) -> GetIndexedEntriesMut<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
pub fn get_indexed_entries_mut<Q>(
&mut self,
key: &Q,
) -> GetIndexedEntriesMut<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
Returns an iterator over (index, &key, &mut value) for every entry
associated with key.
Sourcepub fn get_or_insert_indexed_entries_mut_with(
&mut self,
key: K,
f: impl FnOnce() -> V,
) -> GetIndexedEntriesMut<'_, K, V> ⓘwhere
K: Ord,
pub fn get_or_insert_indexed_entries_mut_with(
&mut self,
key: K,
f: impl FnOnce() -> V,
) -> GetIndexedEntriesMut<'_, K, V> ⓘwhere
K: Ord,
Returns an iterator over (index, &key, &mut value) for every entry
associated with key, inserting a single new entry with a value
produced by f if key was not already present.
Sourcepub fn get_or_insert_indexed_entries_mut(
&mut self,
key: K,
value: V,
) -> GetIndexedEntriesMut<'_, K, V> ⓘwhere
K: Ord,
pub fn get_or_insert_indexed_entries_mut(
&mut self,
key: K,
value: V,
) -> GetIndexedEntriesMut<'_, K, V> ⓘwhere
K: Ord,
Returns an iterator over (index, &key, &mut value) for every entry
associated with key, inserting a single new entry with value if
key was not already present.
Sourcepub fn get_entries_mut<Q>(&mut self, key: &Q) -> GetEntriesMut<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
pub fn get_entries_mut<Q>(&mut self, key: &Q) -> GetEntriesMut<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
Returns an iterator over (&key, &mut value) for every entry
associated with key.
Sourcepub fn get_or_insert_entries_mut_with(
&mut self,
key: K,
f: impl FnOnce() -> V,
) -> GetEntriesMut<'_, K, V> ⓘwhere
K: Ord,
pub fn get_or_insert_entries_mut_with(
&mut self,
key: K,
f: impl FnOnce() -> V,
) -> GetEntriesMut<'_, K, V> ⓘwhere
K: Ord,
Returns an iterator over (&key, &mut value) for every entry
associated with key, inserting a single new entry with a value
produced by f if key was not already present.
Sourcepub fn get_or_insert_entries_mut(
&mut self,
key: K,
value: V,
) -> GetEntriesMut<'_, K, V> ⓘwhere
K: Ord,
pub fn get_or_insert_entries_mut(
&mut self,
key: K,
value: V,
) -> GetEntriesMut<'_, K, V> ⓘwhere
K: Ord,
Returns an iterator over (&key, &mut value) for every entry
associated with key, inserting a single new entry with value if
key was not already present.
Sourcepub fn get_mut<Q>(&mut self, key: &Q) -> GetMut<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
pub fn get_mut<Q>(&mut self, key: &Q) -> GetMut<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
Returns an iterator over a mutable reference to the value of every
entry associated with key.
Sourcepub fn get_or_insert_mut_with(
&mut self,
key: K,
f: impl FnOnce() -> V,
) -> GetMut<'_, K, V> ⓘwhere
K: Ord,
pub fn get_or_insert_mut_with(
&mut self,
key: K,
f: impl FnOnce() -> V,
) -> GetMut<'_, K, V> ⓘwhere
K: Ord,
Returns an iterator over a mutable reference to the value of every
entry associated with key, inserting a single new entry with a
value produced by f if key was not already present.
Sourcepub fn get_or_insert_mut(&mut self, key: K, value: V) -> GetMut<'_, K, V> ⓘwhere
K: Ord,
pub fn get_or_insert_mut(&mut self, key: K, value: V) -> GetMut<'_, K, V> ⓘwhere
K: Ord,
Returns an iterator over a mutable reference to the value of every
entry associated with key, inserting a single new entry with
value if key was not already present.
Sourcepub fn entry(&mut self, key: K) -> Entry<'_, K, V>where
K: Ord,
pub fn entry(&mut self, key: K) -> Entry<'_, K, V>where
K: Ord,
Gets the entry associated with key for in-place manipulation.
§Example
use btree_indexmap::{BTreeIndexMultiMap, multi_map::Entry};
let mut map: BTreeIndexMultiMap<&str, i32> = BTreeIndexMultiMap::new();
match map.entry("a") {
Entry::Vacant(e) => {
e.insert(1);
}
Entry::Occupied(_) => unreachable!(),
}
assert_eq!(map.get("a").next(), Some(&1));Sourcepub fn push_back(&mut self, key: K, value: V) -> (usize, bool)where
K: Ord,
pub fn push_back(&mut self, key: K, value: V) -> (usize, bool)where
K: Ord,
Inserts a new entry at the end of the map.
Returns the index of the new entry, and whether key was not
already present in the map.
Sourcepub fn insert_at(&mut self, index: usize, key: K, value: V) -> boolwhere
K: Ord,
pub fn insert_at(&mut self, index: usize, key: K, value: V) -> boolwhere
K: Ord,
Inserts a new entry at the given index.
Returns whether key was not already present in the map.
§Panics
Panics if index > len.
Sourcepub fn push_front(&mut self, key: K, value: V) -> boolwhere
K: Ord,
pub fn push_front(&mut self, key: K, value: V) -> boolwhere
K: Ord,
Inserts a new entry at the front of the map.
Returns whether key was not already present in the map.
Sourcepub fn shift_insert_full(
&mut self,
key: K,
value: V,
) -> (usize, ShiftInsert<'_, K, V>)where
K: Ord,
pub fn shift_insert_full(
&mut self,
key: K,
value: V,
) -> (usize, ShiftInsert<'_, K, V>)where
K: Ord,
Inserts a (key, value) entry, keeping only this occurrence of
key.
If key was already present, replaces its first occurrence and
removes every other one (using shift semantics), returning the
index of the kept entry and an iterator over the values it
replaced or removed. Otherwise, appends a new entry and returns its
index with an empty iterator.
Sourcepub fn shift_insert(&mut self, key: K, value: V) -> ShiftInsert<'_, K, V> ⓘwhere
K: Ord,
pub fn shift_insert(&mut self, key: K, value: V) -> ShiftInsert<'_, K, V> ⓘwhere
K: Ord,
Inserts a (key, value) entry, keeping only this occurrence of
key.
Sourcepub fn swap_insert_full(
&mut self,
key: K,
value: V,
) -> (usize, SwapInsert<'_, K, V>)where
K: Ord,
pub fn swap_insert_full(
&mut self,
key: K,
value: V,
) -> (usize, SwapInsert<'_, K, V>)where
K: Ord,
Inserts a (key, value) entry, keeping only this occurrence of
key.
If key was already present, replaces its first occurrence and
removes every other one (using swap semantics), returning the
index of the kept entry and an iterator over the values it
replaced or removed. Otherwise, appends a new entry and returns its
index with an empty iterator.
Sourcepub fn swap_insert(&mut self, key: K, value: V) -> SwapInsert<'_, K, V> ⓘwhere
K: Ord,
pub fn swap_insert(&mut self, key: K, value: V) -> SwapInsert<'_, K, V> ⓘwhere
K: Ord,
Inserts a (key, value) entry, keeping only this occurrence of
key.
Sourcepub fn shift_insert_front(
&mut self,
key: K,
value: V,
) -> ShiftInsertFront<'_, K, V> ⓘwhere
K: Ord,
pub fn shift_insert_front(
&mut self,
key: K,
value: V,
) -> ShiftInsertFront<'_, K, V> ⓘwhere
K: Ord,
Inserts a (key, value) entry at the front of the map, replacing
every previous occurrence of key.
Returns an iterator over the values of the removed occurrences, removed using shift semantics.
Sourcepub fn swap_insert_front(
&mut self,
key: K,
value: V,
) -> SwapInsertFront<'_, K, V> ⓘwhere
K: Ord,
pub fn swap_insert_front(
&mut self,
key: K,
value: V,
) -> SwapInsertFront<'_, K, V> ⓘwhere
K: Ord,
Inserts a (key, value) entry at the front of the map, replacing
every previous occurrence of key.
Returns an iterator over the values of the removed occurrences, removed using swap semantics.
Sourcepub fn shift_insert_back_full(
&mut self,
key: K,
value: V,
) -> (usize, ShiftInsertBack<'_, K, V>)where
K: Ord,
pub fn shift_insert_back_full(
&mut self,
key: K,
value: V,
) -> (usize, ShiftInsertBack<'_, K, V>)where
K: Ord,
Inserts a (key, value) entry at the end of the map, replacing
every previous occurrence of key.
Returns the index of the new entry and an iterator over the values of the removed occurrences, removed using shift semantics.
Sourcepub fn shift_insert_back(
&mut self,
key: K,
value: V,
) -> ShiftInsertBack<'_, K, V> ⓘwhere
K: Ord,
pub fn shift_insert_back(
&mut self,
key: K,
value: V,
) -> ShiftInsertBack<'_, K, V> ⓘwhere
K: Ord,
Inserts a (key, value) entry at the end of the map, replacing
every previous occurrence of key.
Returns an iterator over the values of the removed occurrences, removed using shift semantics.
Sourcepub fn insert(&mut self, key: K, value: V) -> ShiftInsertBack<'_, K, V> ⓘwhere
K: Ord,
pub fn insert(&mut self, key: K, value: V) -> ShiftInsertBack<'_, K, V> ⓘwhere
K: Ord,
Inserts a (key, value) entry, keeping only this occurrence of
key.
This is an alias for Self::shift_insert_back.
Sourcepub fn swap_insert_back_full(
&mut self,
key: K,
value: V,
) -> (usize, SwapInsertBack<'_, K, V>)where
K: Ord,
pub fn swap_insert_back_full(
&mut self,
key: K,
value: V,
) -> (usize, SwapInsertBack<'_, K, V>)where
K: Ord,
Inserts a (key, value) entry at the end of the map, replacing
every previous occurrence of key.
Returns the index of the new entry and an iterator over the values of the removed occurrences, removed using swap semantics.
Sourcepub fn swap_insert_back(&mut self, key: K, value: V) -> SwapInsertBack<'_, K, V> ⓘwhere
K: Ord,
pub fn swap_insert_back(&mut self, key: K, value: V) -> SwapInsertBack<'_, K, V> ⓘwhere
K: Ord,
Inserts a (key, value) entry at the end of the map, replacing
every previous occurrence of key.
Returns an iterator over the values of the removed occurrences, removed using swap semantics.
Sourcepub fn shift_remove_at(&mut self, i: usize) -> Option<(K, V)>where
K: Ord,
pub fn shift_remove_at(&mut self, i: usize) -> Option<(K, V)>where
K: Ord,
Removes the entry at the given index, returning its key and value,
if it was present.
Shifts every following entry one index down.
Sourcepub fn swap_remove_at(&mut self, i: usize) -> Option<(K, V)>where
K: Ord,
pub fn swap_remove_at(&mut self, i: usize) -> Option<(K, V)>where
K: Ord,
Removes the entry at the given index, returning its key and value,
if it was present.
Moves the last entry into the removed slot.
Sourcepub fn shift_remove_indexed_entries<Q>(
&mut self,
key: &Q,
) -> ShiftRemoveIndexedEntries<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
pub fn shift_remove_indexed_entries<Q>(
&mut self,
key: &Q,
) -> ShiftRemoveIndexedEntries<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
Removes every entry associated with key, returning an iterator
over (index, key, value) for each removed entry.
Shifts the remaining entries down to fill the gaps.
Sourcepub fn shift_remove_entries<Q>(
&mut self,
key: &Q,
) -> ShiftRemoveEntries<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
pub fn shift_remove_entries<Q>(
&mut self,
key: &Q,
) -> ShiftRemoveEntries<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
Removes every entry associated with key, returning an iterator
over (key, value) for each removed entry.
Shifts the remaining entries down to fill the gaps.
Sourcepub fn shift_remove<Q>(&mut self, key: &Q) -> ShiftRemove<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
pub fn shift_remove<Q>(&mut self, key: &Q) -> ShiftRemove<'_, K, V> ⓘwhere
Q: ?Sized + Comparable<K>,
Removes every entry associated with key, returning an iterator
over the value of each removed entry.
Shifts the remaining entries down to fill the gaps.
Sourcepub fn swap_remove_indexed_entries<Q>(
&mut self,
key: &Q,
) -> SwapRemoveIndexedEntries<'_, K, V> ⓘ
pub fn swap_remove_indexed_entries<Q>( &mut self, key: &Q, ) -> SwapRemoveIndexedEntries<'_, K, V> ⓘ
Removes every entry associated with key, returning an iterator
over (index, key, value) for each removed entry.
Moves entries from the end of the map into the gaps.
Sourcepub fn swap_remove_entries<Q>(&mut self, key: &Q) -> SwapRemoveEntries<'_, K, V> ⓘ
pub fn swap_remove_entries<Q>(&mut self, key: &Q) -> SwapRemoveEntries<'_, K, V> ⓘ
Removes every entry associated with key, returning an iterator
over (key, value) for each removed entry.
Moves entries from the end of the map into the gaps.
Sourcepub fn swap_remove<Q>(&mut self, key: &Q) -> SwapRemove<'_, K, V> ⓘ
pub fn swap_remove<Q>(&mut self, key: &Q) -> SwapRemove<'_, K, V> ⓘ
Removes every entry associated with key, returning an iterator
over the value of each removed entry.
Moves entries from the end of the map into the gaps.
Sourcepub fn iter(&self) -> Iter<'_, K, V> ⓘ
pub fn iter(&self) -> Iter<'_, K, V> ⓘ
Returns an iterator over the entries of the map, in insertion (index) order.
Sourcepub fn iter_mut(&mut self) -> IterMut<'_, K, V> ⓘ
pub fn iter_mut(&mut self) -> IterMut<'_, K, V> ⓘ
Returns an iterator over the entries of the map, with a mutable reference to the value, in insertion (index) order.
Sourcepub fn iter_sorted(&self) -> IterSorted<'_, K, V> ⓘ
pub fn iter_sorted(&self) -> IterSorted<'_, K, V> ⓘ
Returns an iterator over the entries of the map, sorted by key
according to K’s implementation of Ord.
Entries that share the same key are visited in insertion (index) order.
Sourcepub fn iter_mut_sorted(&mut self) -> IterMutSorted<'_, K, V> ⓘ
pub fn iter_mut_sorted(&mut self) -> IterMutSorted<'_, K, V> ⓘ
Returns an iterator over the entries of the map, with a mutable
reference to the value, sorted by key according to K’s
implementation of Ord.
Entries that share the same key are visited in insertion (index) order.
Sourcepub fn into_iter_sorted(self) -> IntoIterSorted<K, V> ⓘ
pub fn into_iter_sorted(self) -> IntoIterSorted<K, V> ⓘ
Turns this map into an iterator over its entries, sorted by key
according to K’s implementation of Ord.
Entries that share the same key are visited in insertion (index) order.
Sourcepub fn keys(&self) -> Keys<'_, K, V> ⓘ
pub fn keys(&self) -> Keys<'_, K, V> ⓘ
Returns an iterator over the keys of the map, in insertion (index) order.
Sourcepub fn values(&self) -> Values<'_, K, V> ⓘ
pub fn values(&self) -> Values<'_, K, V> ⓘ
Returns an iterator over the values of the map, in insertion (index) order.
Sourcepub fn values_mut(&mut self) -> ValuesMut<'_, K, V> ⓘ
pub fn values_mut(&mut self) -> ValuesMut<'_, K, V> ⓘ
Returns an iterator over mutable references to the values of the map, in insertion (index) order.
Trait Implementations§
Source§impl<K: Clone, V: Clone> Clone for BTreeIndexMultiMap<K, V>
impl<K: Clone, V: Clone> Clone for BTreeIndexMultiMap<K, V>
Source§fn clone(&self) -> BTreeIndexMultiMap<K, V>
fn clone(&self) -> BTreeIndexMultiMap<K, V>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<K, V> Default for BTreeIndexMultiMap<K, V>
impl<K, V> Default for BTreeIndexMultiMap<K, V>
impl<K: Eq, V: Eq> Eq for BTreeIndexMultiMap<K, V>
Source§impl<K: Ord, V> Extend<(K, V)> for BTreeIndexMultiMap<K, V>
impl<K: Ord, V> Extend<(K, V)> for BTreeIndexMultiMap<K, V>
Source§fn extend<T: IntoIterator<Item = (K, V)>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = (K, V)>>(&mut self, iter: T)
Source§fn extend_one(&mut self, item: T)
fn extend_one(&mut self, item: T)
extend_one)Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one)Source§impl<K: Ord, V> FromIterator<(K, V)> for BTreeIndexMultiMap<K, V>
impl<K: Ord, V> FromIterator<(K, V)> for BTreeIndexMultiMap<K, V>
Source§impl<K, V, Q> Index<&Q> for BTreeIndexMultiMap<K, V>where
Q: ?Sized + Comparable<K>,
impl<K, V, Q> Index<&Q> for BTreeIndexMultiMap<K, V>where
Q: ?Sized + Comparable<K>,
Source§impl<K, V> IntoIterator for BTreeIndexMultiMap<K, V>
impl<K, V> IntoIterator for BTreeIndexMultiMap<K, V>
Source§impl<'a, K, V> IntoIterator for &'a BTreeIndexMultiMap<K, V>
impl<'a, K, V> IntoIterator for &'a BTreeIndexMultiMap<K, V>
Source§impl<'a, K, V> IntoIterator for &'a mut BTreeIndexMultiMap<K, V>
impl<'a, K, V> IntoIterator for &'a mut BTreeIndexMultiMap<K, V>
Source§impl<K: Ord, V: Ord> Ord for BTreeIndexMultiMap<K, V>
impl<K: Ord, V: Ord> Ord for BTreeIndexMultiMap<K, V>
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl<K: PartialOrd, V: PartialOrd> PartialOrd for BTreeIndexMultiMap<K, V>
impl<K: PartialOrd, V: PartialOrd> PartialOrd for BTreeIndexMultiMap<K, V>
Auto Trait Implementations§
impl<K, V> Freeze for BTreeIndexMultiMap<K, V>
impl<K, V> RefUnwindSafe for BTreeIndexMultiMap<K, V>
impl<K, V> Send for BTreeIndexMultiMap<K, V>
impl<K, V> Sync for BTreeIndexMultiMap<K, V>
impl<K, V> Unpin for BTreeIndexMultiMap<K, V>
impl<K, V> UnsafeUnpin for BTreeIndexMultiMap<K, V>
impl<K, V> UnwindSafe for BTreeIndexMultiMap<K, V>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.