#![allow(unused_variables)] use std::rc::Rc; struct Owner { name: String, } struct Gadget { id: i32, owner: Rc, } fn main() { let gadget_owner: Rc = Rc::new(Owner { name: "Gadget Man".to_string(), }); let gadget1 = Gadget { id: 1, owner: Rc::clone(&gadget_owner), }; let gadget2 = Gadget { id: 2, owner: Rc::clone(&gadget_owner), }; drop(gadget_owner); println!("Gadget {} owned by {}", gadget1.id, gadget1.owner.name); println!("Gadget {} owned by {}", gadget2.id, gadget2.owner.name); }