pub fn unescape(mut self) -> Option<T> {
        unsafe {
            let inner = read(&mut self.inner);
            let value = read(&mut *self.value);
            forget(self);

            match Arc::try_unwrap(inner) {
                Ok(_) => Some(value),
                Err(inner) => {
                    inner.escape(value);
                    None
                }
            }
        }
    }
/// Unwrap escaping value.
/// This will effectivly prevent it from escaping.
/// In case of existing `KeepAlive` created from this instance this function will **escape** value instead.
Unwrap escaping value.
This will effectivly prevent it from escaping.
In case of existing `KeepAlive` created from this instance this function will **escape** value instead.
Unwrap escaping value . This will effectivly prevent it from escaping . In case of existing ` KeepAlive ` created from this instance this function will ** escape ** value instead .
pub fn unescape(mut self) -> Option<T> {
        unsafe {
            let inner = read(&mut self.inner);
            let value = read(&mut *self.value);
            forget(self);
            match Arc::try_unwrap(inner) {
                Ok(_) => Some(value),
                Err(inner) => {
                    inner.escape(value);
                    None
                }
            }
        }
    }
pub fn unescape ( mut self ) -> Option < T > { unsafe { let inner = read ( & mut self . inner ) ; let value = read ( & mut * self . value ) ; forget ( self ) ; match Arc :: try_unwrap ( inner ) { Ok ( _ ) => Some ( value ) , Err ( inner ) => { inner . escape ( value ) ; None } } } }
Unwrap escaping value.
Unwrap escaping value .
mut self
mut self