RefMutT
RefMut<T> is a type in Rust’s standard library used to represent a temporary mutable borrow of the value stored inside a RefCell<T>. It is produced by calling RefCell<T>::borrow_mut(). The mutable borrow rules are enforced at runtime: only one mutable borrow can exist at a time, and no mutable borrow can coexist with any active immutable borrow. If borrow_mut is called when these rules would be violated, the call panics.
A RefMut<T> acts as a smart pointer to the inner value. It implements Deref so you can
RefMut<T> is part of the runtime borrow checking provided by RefCell and is most useful when interior
In typical use, you create a RefMut by borrowing mutably from a RefCell, use the inner value