我有以下定义:
trait A {
fn f(&self);
}
trait B: A {
// ...
}
我希望实现这样的功能:
fn convert(v: Rc<RefCell<dyn B>>) -> Rc<RefCell<dyn A>> {
}
我希望有一种返回值的方式,使其与相同对象共享,这意味着这些声明:
```python a = MyClass() b = a.my_method() ```
'b'将与'a'引用相同的对象。
let x: Rc<RefCell<dyn B>> /* = ... */;
let y = convert(Rc::clone(&x));
x.f()
和y.f()
的调用都是在同一个对象上执行。
我应该如何实现函数convert
,或者更改类型定义以拥有这种行为和子对象转换(即将其转换为子对象)。