[][src]Struct stk::Ref

pub struct Ref<'a, T: ?Sized + 'a> { /* fields omitted */ }

Guard for a value borrowed from a slot in the virtual machine.

These guards are necessary, since we need to guarantee certain forms of access depending on what we do. Releasing the guard releases the access.

These also aid in function call integration, since they can be "arm" the virtual machine to release shared guards through its unsafe functions.

See [disarm][Vm::disarm] for more information.

Implementations

impl<'a, T: ?Sized> Ref<'a, T>[src]

pub unsafe fn unsafe_into_ref<'out>(this: Self) -> (&'out T, RawRefGuard)[src]

Convert into a reference with an unbounded lifetime.

Safety

The returned reference must not outlive the VM that produced it. Calling [disarm][Vm::disarm] must not be done until all referenced produced through these methods are no longer live.

Trait Implementations

impl<T: ?Sized, '_> Debug for Ref<'_, T> where
    T: Debug
[src]

impl<T: ?Sized, '_> Deref for Ref<'_, T>[src]

type Target = T

The resulting type after dereferencing.

Auto Trait Implementations

impl<'a, T> !RefUnwindSafe for Ref<'a, T>

impl<'a, T> !Send for Ref<'a, T>

impl<'a, T> !Sync for Ref<'a, T>

impl<'a, T: ?Sized> Unpin for Ref<'a, T>

impl<'a, T> !UnwindSafe for Ref<'a, T>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,