//use std::ops::Deref; struct S { v: i64 } fn print_s(s: &S) { println!("S->v: {}", s.v) } fn main() { let v = S{v: 1}; let sp = Box::new(S{v: 1}); let rc = std::rc::Rc::new(S{v: 2}); let cell = std::cell::RefCell::new(S{v: 3}); print_s(&v); print_s(&sp); print_s(&rc.clone()); print_s(&(*cell.borrow())); print_s(&v); print_s(&sp); print_s(&rc); print_s(&cell.borrow()); }