firedbg-rust-debugger 1.74.1

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

#[derive(Debug)]
struct Small {
    a: i32,
    b: i64,
}

#[derive(Debug)]
struct Big {
    a: i32,
    b: i64,
    c: &'static str,
}

trait Mass: Debug {}
impl Mass for Big {}

fn return_boxed_big() -> Box<Big> {
    Box::new(Big { a: 1, b: 2, c: "box" })
}

fn return_rc_big() -> Rc<Big> {
    Rc::new(Big { a: 2, b: 3, c: "rc" })
}

fn return_arc_big() -> Arc<Big> {
    Arc::new(Big { a: 3, b: 4, c: "arc" })
}

fn return_dyn_box_big() -> Box<dyn Mass> {
    Box::new(Big { a: 0, b: 0, c: "0" })
}

fn return_boxed_slice() -> Box<&'static [u8]> {
    Box::new(&[1,2,3])
}

fn return_rc_slice() -> Rc<&'static [u8]> {
    Rc::new(&[1,2,3])
}

fn return_arc_slice() -> Arc<&'static [u8]> {
    Arc::new(&[1,2,3])
}

fn main() {
    let r = return_boxed_big(); dbg!(&r);
    let r = return_rc_big(); dbg!(&r);
    let r = return_arc_big(); dbg!(&r);
    let r = return_dyn_box_big(); dbg!(&r);
    let r = return_boxed_slice(); dbg!(&r);
    let r = return_rc_slice(); dbg!(&r);
    let r = return_arc_slice(); dbg!(&r);
    println!();
}