struct S { v: i32 } fn main() { let v = std::cell::RefCell::new(S{v:666}); let s = std::rc::Rc::new(v); let r1 = s.clone(); let r2 = s.clone(); println!("{} {}", (*r1.borrow()).v, (*r2.borrow()).v); { let mut r3 = s.borrow_mut(); r3.v = 0; } println!("{} {}", (*r1.borrow()).v, (*r2.borrow()).v) }