pub struct SortedList<K: Ord, V: PartialEq> { /* private fields */ }
Expand description
SortedList
stores multiple (K, V)
tuples ordered by K, then in the order of insertion for V
.
Implmented using two Vec
this should be fast for in-order inserts and quite bad in the
worst-case of reverse insertion order.
§Example
use sorted_list::SortedList;
let mut list: SortedList<u32, u8> = SortedList::new();
list.insert(0, 0);
list.insert(1, 1);
list.insert(0, 2);
assert_eq!(
list.iter().collect::<Vec<_>>(),
vec![(&0, &0), (&0, &2), (&1, &1)]);
Implementations§
Source§impl<K: Ord, V: PartialEq> SortedList<K, V>
impl<K: Ord, V: PartialEq> SortedList<K, V>
Sourcepub fn insert(&mut self, key: K, value: V) -> bool
pub fn insert(&mut self, key: K, value: V) -> bool
Returns true
if the (key, value)
did not exist in the sorted list before and it exists now,
false
otherwise.
Sourcepub fn iter(&self) -> Tuples<'_, K, V> ⓘ
pub fn iter(&self) -> Tuples<'_, K, V> ⓘ
Iterate all stored tuples, keys in order, values in insertion order
Sourcepub fn first_value_of(&self, key: &K) -> Option<&V>
pub fn first_value_of(&self, key: &K) -> Option<&V>
Returns the first (in insertion order) value of key
Sourcepub fn last_value_of(&self, key: &K) -> Option<&V>
pub fn last_value_of(&self, key: &K) -> Option<&V>
Returns the last (in insertion order) value of key
Trait Implementations§
Source§impl<K: Clone + Ord, V: PartialEq> Extend<(K, V)> for SortedList<K, V>
impl<K: Clone + Ord, V: PartialEq> Extend<(K, V)> for SortedList<K, V>
Source§fn extend<T>(&mut self, iter: T)where
T: IntoIterator<Item = (K, V)>,
fn extend<T>(&mut self, iter: T)where
T: IntoIterator<Item = (K, V)>,
Extends a collection with the contents of an iterator. Read more
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
🔬This is a nightly-only experimental API. (
extend_one
)Extends a collection with exactly one element.
Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
🔬This is a nightly-only experimental API. (
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
Source§impl<K: Ord, V: PartialEq> IntoIterator for SortedList<K, V>
impl<K: Ord, V: PartialEq> IntoIterator for SortedList<K, V>
Auto Trait Implementations§
impl<K, V> Freeze for SortedList<K, V>
impl<K, V> RefUnwindSafe for SortedList<K, V>where
K: RefUnwindSafe,
V: RefUnwindSafe,
impl<K, V> Send for SortedList<K, V>
impl<K, V> Sync for SortedList<K, V>
impl<K, V> Unpin for SortedList<K, V>
impl<K, V> UnwindSafe for SortedList<K, V>where
K: UnwindSafe,
V: UnwindSafe,
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
Mutably borrows from an owned value. Read more