Is Rc<RefCell<T>> truly the best way to share mutable data between two structs?