我已经定义了这些:
struct MyStruct<T> { /* ... */ }
trait MyTrait: Any { /* ... */ }
impl<T> MyTrait for MyStruct<T> { /* ... */ }
是否可以将Rc<RefCell<MyTrait>>
转发给Rc<RefCell<MyStruct<T>>>
(在T
上的函数泛型的上下文中)?
fn some_fn<T>(h: &HashMap<String, Rc<RefCell<MyTrait>>>, key: &str) -> Rc<RefCell<MyStruct<T>>> {
let x: Rc<RefCell<MyTrait>> = h.get(key).unwrap().clone();
/* what goes here ??? */ (x)
}