【发布时间】:2020-05-25 21:32:30
【问题描述】:
我正在为VirtualTapInterface 实现一个特征。该特征的receive 函数应该创建一个TxToken 结构,其中lower 属性必须是包含当前VirtualTapInterface 的Rc<RefCell<VirtualTapInterface>>,即self
impl<'a> Device<'a> for VirtualTapInterface {
type TxToken = TxToken;
fn receive(&'a mut self) -> Option<(Self::RxToken, Self::TxToken)> {
let tx = TxToken { lower: Rc::new(RefCell::new(*self))};
我试过了,但我明白了
无法移出位于可变引用后面的
*self发生移动是因为
*self具有类型phy::virtual_tun::VirtualTapInterface,它没有实现Copytraitrustc(E0507)
如何创建一个自可变引用的Rc<RefCell<>>?
【问题讨论】:
标签: rust