firedbg-rust-debugger 1.74.1

FireDBG Debugger Engine for Rust
Documentation
use std::{rc::Rc, fmt::Debug, sync::Arc};

#[derive(Debug, Clone)]
struct Object {
    name: String,
}
trait Shape: Debug {}
impl Shape for Object {}

fn main() {
    {
        let boxed = Box::new(Object {
            name: "Boxed".to_owned(),
        });
        let arc = Arc::new(Object {
            name: "Arced".to_owned(),
        });
        let rc = Rc::new(Object {
            name: "Rced".to_owned(),
        });
        let _1 = arc.clone();
        let _2 = rc.clone();
        let _3 = Arc::downgrade(&arc);
        let _4 = Arc::downgrade(&arc);
        let _5 = rc.clone();
        let _6 = Rc::downgrade(&rc);
        dbg!(&boxed);
        dbg!(&arc);
        dbg!(&rc);
        println!();
    }
    {
        let obj = Object {
            name: "Don't care".to_owned(),
        };
        let boxed: Box<dyn Shape> = Box::new(obj.clone());
        let arc: Arc<dyn Shape> = Arc::new(obj.clone());
        let rc: Rc<dyn Shape> = Rc::new(obj.clone());
        let obj: &dyn Shape = &obj;
        dbg!(&boxed);
        dbg!(&arc);
        dbg!(&rc);
        dbg!(&obj);
        println!();
    }
}