RC module documentation should clarify mutable references can be obtained, under certain conditions. Rc module documentation sates: "Shared references in Rust disallow mutation by default, and Rc is no exception: you cannot obtain a mutable reference to something inside an Rc." https://doc.rust-lang.org/std/rc/ Rc's get_mut method states: "Returns a mutable reference to the inner value, if there are no other Rc or Weak pointers to the same value.". https://doc.rust-lang.org/std/rc/struct.Rc.html#method.get_mut