Is there any reason why we are implementing Extend<(&'a K, &'a V)> for HashMap<K, V, S>
, but there is no implementation of Extend<&'a (K, V)> for HashMap<K, V, S>
in the standard library?
It is really strange, when you can do something like this:
fn main() {
use std::collections::HashMap;
let mut map = HashMap::new();
let some_vec = vec![(1, 10), (2, 20), (3, 30), (4, 40), (5, 50)];
// It's OK
map.extend(some_vec.iter().map(|&(k, v)| (k, v)));
println!("{:?}", map);
}
But you can not do something like this:
fn main() {
use std::collections::HashMap;
let mut map = HashMap::new();
let some_vec = vec![(1, 10), (2, 20), (3, 30), (4, 40), (5, 50)];
map.extend(&some_vec); // It's error
map.extend(&some_vec[..]); // It's also error
println!("{:?}", map);
}
P.S. K: Copy, V: Copy, S: BuildHasher