With references and Box<T>, the borrowing rules’ invariants are enforced at compile time. With RefCell<T>, these invariants are enforced at runtime.
Unlike Rc<T>, the RefCell<T> type represents single ownership over the data it holds