like is
use std::collections::BTreeMap;
type ID = [u8; 20];
// Not general form
// trait Close<V> {
// fn get_closet(&self, key :ID) -> Option<&V>;
// }
// impl<V> Close<V> for BTreeMap<ID, V> {
// fn get_closet(&self, key:ID) -> Option<&V> {
// self.get(&key)
// }
// }
// general form
trait Close<K, V> {
fn get_closet(&self, key :K) -> Option<&V>;
}
impl<K, V> Close<K, V> for BTreeMap<K, V>
where K = ID { //should be any K: Ord; but just want impl for ID now;
fn get_closet(&self, key:K) -> Option<&V> {
self.get(&key)
}
}