pub fn own<'a, 'b>(orig: Ref<'a, T, A>) -> Ref<'b, T, A> {
        let res = Ref {
            value: orig.value,
            phantom: PhantomData
        };
        std::mem::forget(orig);
        res
    }
/// Creates a new owner of `Ref` for a broader lifetime useful for
/// letting it out from a function
/// 
/// This associative function obtains the ownership of the original `Ref`
/// so that the number of immutably borrowers doesn't change
/// 
Creates a new owner of `Ref` for a broader lifetime useful for
letting it out from a function

This associative function obtains the ownership of the original `Ref`
so that the number of immutably borrowers doesn't change
Creates a new owner of ` Ref ` for a broader lifetime useful for letting it out from a function This associative function obtains the ownership of the original ` Ref ` so that the number of immutably borrowers doesn ' t change
pub fn own<'a, 'b>(orig: Ref<'a, T, A>) -> Ref<'b, T, A> {
        let res = Ref {
            value: orig.value,
            phantom: PhantomData
        };
        std::mem::forget(orig);
        res
    }
pub fn own < ' a , ' b > ( orig : Ref < ' a , T , A > ) -> Ref < ' b , T , A > { let res = Ref { value : orig . value , phantom : PhantomData } ; std :: mem :: forget ( orig ) ; res }
Creates a new owner of `Ref` for a broader lifetime useful for
letting it out from a function
Creates a new owner of ` Ref ` for a broader lifetime useful for letting it out from a function
orig
Ref<'a, T, A>