Rationale behind Rc::get_mut()

Ah, yes, I looked at the code, it revolves around (i) storing borrow count (AND also "borrowed mutably" flag in the same variable), and (ii) handling out wrapper objects that behave as if they were of type they wrap while at the same time internally holding a reference to the RefCell so the wrapper can phone home upon destruction and update borrow count. Both are classic C++ techniques, I dare say, but the implementation in Rust is much more concise and easier to follow. Needless to say, this functionality is an overkill for Rc :slight_smile: