stable_map/
extend.rs

1#[cfg(test)]
2mod tests;
3
4use {
5    crate::StableMap,
6    core::hash::{BuildHasher, Hash},
7};
8
9impl<'a, K, V, S> Extend<&'a (K, V)> for StableMap<K, V, S>
10where
11    K: Eq + Hash + Clone,
12    V: Clone,
13    S: BuildHasher,
14{
15    fn extend<T: IntoIterator<Item = &'a (K, V)>>(&mut self, iter: T) {
16        for (k, v) in iter {
17            self.insert(k.clone(), v.clone());
18        }
19    }
20}
21
22impl<'a, K, V, S> Extend<(&'a K, &'a V)> for StableMap<K, V, S>
23where
24    K: Eq + Hash + Clone,
25    V: Clone,
26    S: BuildHasher,
27{
28    fn extend<T: IntoIterator<Item = (&'a K, &'a V)>>(&mut self, iter: T) {
29        for (k, v) in iter {
30            self.insert(k.clone(), v.clone());
31        }
32    }
33}
34
35impl<K, V, S> Extend<(K, V)> for StableMap<K, V, S>
36where
37    K: Eq + Hash,
38    S: BuildHasher,
39{
40    fn extend<T: IntoIterator<Item = (K, V)>>(&mut self, iter: T) {
41        for (k, v) in iter {
42            self.insert(k, v);
43        }
44    }
45}