Documentation
#[cfg(test)]

mod tests {

    #[test]

    fn test() {
        use std::{
            cell,
            rc,
        };

        let a = rc::Rc::new(cell::RefCell::new(1));

        let p1 = &a as *const _;

        let p2 = &a.borrow() as *const _;

        let mut p3 = &a.borrow() as *const _;

        println!("{:?}", p1);

        println!("{:?}", p2);

        println!("{:?}", p3);

        p3 = &a.borrow() as *const _;

        println!("{:?}", p3);

        println!("{:?}", a.as_ptr());

        println!("{:?}", &*a.borrow() as *const _);

        assert!(std::ptr::eq(a.as_ptr(), &*a.borrow()));

        let a = cell::RefCell::new(1);

        let p1 = &a as *const _;

        let p2 = &a.borrow() as *const _;

        let mut p3 = &a.borrow() as *const _;

        println!("{:?}", p1);

        println!("{:?}", p2);

        println!("{:?}", p3);

        p3 = &a.borrow() as *const _;

        println!("{:?}", p3);

        let p4 = &a as *const _;

        println!("{:?}", p4);

        let tmp = a.as_ptr();

        let p5 = &*a.borrow() as *const _;

        println!("{:?}", p5);

        println!("{:?}", tmp);

        let tmp = a.borrow();

        println!("{:?}", &*tmp as *const _);
    }
}