我有以下定义:
trait A {
fn f(&self);
}
trait B: A {
// ...
}
我想实现这种功能:
fn convert(v: Rc<RefCell<dyn B>>) -> Rc<RefCell<dyn A>> {
}
我想有一种方法来返回共享相同对象的值,这意味着使用这些声明:
let x: Rc<RefCell<dyn B>> /* = ... */;
let y = convert(Rc::clone(&x));
调用x.f()
并将y.f()
调用应用于同一对象。
我如何实现该功能convert
或如何更改类型定义以具有该行为和那种转换(转换为子对象)。