Smart Pointers in Rust - Reference Cycles