I'm implementing a trait for VirtualTapInterface. The receive function of this trait should create a TxToken struct, where the lower property must be an Rc<RefCell<VirtualTapInterface>> containing the current VirtualTapInterface, that is 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))};
I tried this but I get that
cannot move out of
*selfwhich is behind a mutable referencemove occurs because
*selfhas typephy::virtual_tun::VirtualTapInterface, which does not implement theCopytraitrustc(E0507)
How is it possible to create a Rc<RefCell<>> of a self mutable reference?