pub fn downgrade(this: &Self, journal: &Journal<A>) -> Weak<T, A> {
        this.inc_weak(journal);
        debug_assert!(!this.ptr.is_dangling());
        Weak { ptr: this.ptr }
    }
/// Creates a new `Weak` persistent pointer to this allocation.
/// 
/// The `Weak` pointer can later be [`upgrade`]d to a `Prc`.
///
/// [`upgrade`]: ./struct.Weak.html#upgrade
/// 
/// # Examples
///
/// ```
/// # use corundum::alloc::heap::*;
/// # type P = Heap;
/// use corundum::prc::Prc;
///
/// P::transaction(|j| {
///     let five = Prc::new(5, j);
///     let _weak_five = Prc::downgrade(&five, j);
/// }).unwrap()
/// ```
Creates a new `Weak` persistent pointer to this allocation.


Creates a new ` Weak ` persistent pointer to this allocation .
pub fn downgrade(this: &Self, journal: &Journal<A>) -> Weak<T, A> {
        this.inc_weak(journal);
        debug_assert!(!this.ptr.is_dangling());
        Weak { ptr: this.ptr }
    }
pub fn downgrade ( this : & Self , journal : & Journal < A > ) -> Weak < T , A > { this . inc_weak ( journal ) ; debug_assert ! ( this ptr is_dangling ( ) ) ; Weak { ptr : this . ptr } }
Creates a new `Weak` persistent pointer to this allocation.
Creates a new ` Weak ` persistent pointer to this allocation .
this
&Self
journal
&Journal<A>
examples
None
use corundum::alloc::heap::*;
None
type p = heap;
use corundum::prc::Prc.

:transaction(|j| {
let five = Prc::new(5, j);
let _weak_five = Prc::downgrade(&five, j);
}).unwrap()
```
use corundum :: prc :: Prc . : transaction ( |j| { let five = Prc :: new ( 5 j ) ; let _weak_five = Prc :: downgrade ( &five j ) ; } ) . unwrap () ` ` `