#![allow(unused_variables)] #![feature(unique_rc_arc)] fn main() { use std::sync::{Arc, Weak, UniqueArc}; struct Gadget { me: Weak, } fn create_gadget() -> Option> { let mut rc = UniqueArc::new(Gadget { me: Weak::new() }); rc.me = UniqueArc::downgrade(&rc); Some(UniqueArc::into_arc(rc)) } create_gadget().unwrap(); }