HashMap实现get和insert方法,它们分别采用单个不可变借位和单个值的移动.
我想要一个像这样的特性,但需要两个键而不是一个.它使用里面的地图,但它只是实现的细节.
pub struct Table<A: Eq + Hash, B: Eq + Hash> {
map: HashMap<(A, B), f64>,
}
impl<A: Eq + Hash, B: Eq + Hash> Memory<A, B> for Table<A, B> {
fn get(&self, a: &A, b: &B) -> f64 {
let key: &(A, B) = ??;
*self.map.get(key).unwrap()
}
fn set(&mut self, a: A, b: B, v: f64) {
self.map.insert((a, b), v);
}
}
Run Code Online (Sandbox Code Playgroud)