In practice, Rc::make_mut
and Rc::get_mut
(EDIT: and try_unwrap
) are the main reason why Rc<Pointee>
and Pin<Rc<Pointee>>
are not equivalent (those methods may "move location"). Otherwise, they are equivalent API-wise, since they both Deref<Target = Pointee>
.
Also, see this thread