1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
use std::{ collections::BTreeMap, borrow::Borrow }; use crate::{ Collection, Len, Insert, Remove, Clear }; impl<K, V> Collection for BTreeMap<K, V> { type Item = (K, V); } impl<K, V> Len for BTreeMap<K, V> { #[inline(always)] fn len(&self) -> usize { self.len() } #[inline(always)] fn is_empty(&self) -> bool { self.is_empty() } } impl<'a, K: Ord, V> Insert for BTreeMap<K, V> { type Output = Option<V>; #[inline(always)] fn insert(&mut self, (key, value): (K, V)) -> Option<V> { self.insert(key, value) } } impl<'a, Q, K: Ord, V> Remove<&'a Q> for BTreeMap<K, V> where K: Borrow<Q>, Q: Ord + ?Sized { #[inline(always)] fn remove(&mut self, key: &'a Q) -> Option<(K, V)> { self.remove_entry(key) } } impl<K: Ord, V> Clear for BTreeMap<K, V> { #[inline(always)] fn clear(&mut self) { self.clear() } }