0
我有HashMap
與自定義散列。這HashMap
的項目,而不執行特徵Clone
(這是一個特點),但有功能克隆這樣的項目:如何克隆包含盒裝特徵對象的HashMap?
use std::collections::HashMap;
use std::hash::BuildHasherDefault;
use fnv::FnvHasher;
trait Item {
fn get_id(&self) -> i32;
fn cloned(&self) -> Box<Item>;
}
#[derive(Clone)]
struct ItemImpl {
id: i32,
foo: i32
}
impl Item for ItemImpl {
fn get_id(&self) -> i32 { self.id }
fn cloned(&self) -> Box<Item> { Box::new(self.clone()) }
}
fn main() {
let hash_map = HashMap::<i32, Box<Item>, BuildHasherDefault<FnvHasher>>::default();
}
我怎麼能克隆hash_map
不久(代碼)和高效(不創建一個臨時的集合) ?
我不認爲你可以使用'HashMap中:: <123-132,項目,...>'在所有的值應該是一個尺寸類型等但一個特點是Unsized。 – kennytm
你能否實施'克隆'? –
這個問題提出的問題並不清楚。你能否多說一下你想解決的問題? – BurntSushi5