[][src]Struct gluon_vm::api::Opaque

pub struct Opaque<T, V>(_, _)
where
    V: ?Sized
;

Type implementing both Pushable and Getable of values of V regardless of wheter V implements the traits. The actual value, V is only accessible directly either by Deref if it is Userdata or a string or by the to_value method if it implements Getable.

When the value is not accessible the value can only be transferred back into gluon again without inspecting the value itself two different threads.

Methods

impl<T, V> Opaque<T, V> where
    V: ?Sized
[src]

pub fn from_value(value: T) -> Self[src]

pub fn into_inner(self) -> T[src]

impl<'s, 'value, T, V> Opaque<T, V> where
    T: AsVariant<'s, 'value>,
    V: ?Sized
[src]

pub fn get_value(&'s self) -> &'s Value[src]

pub fn get_variant(&'s self) -> Variants<'value>[src]

pub fn get_ref(&'s self) -> ValueRef<'value>[src]

impl<'s, 'value, T, V> Opaque<T, [V]> where
    T: AsVariant<'s, 'value>, 
[src]

pub fn len(&'s self) -> usize[src]

pub fn get_array(&'s self) -> GcRef<'value, ValueArray>[src]

pub fn get(&'s self, index: VmInt) -> Option<OpaqueRef<'value, V>>[src]

pub fn iter(&'s self) -> Iter<'s, 'value, T, V>[src]

Trait Implementations

impl<T, V> Trace for Opaque<T, V> where
    T: Trace
[src]

impl<T, V: ?Sized> VmType for Opaque<T, V> where
    V: VmType,
    V::Type: Sized
[src]

type Type = V::Type

A version of Self which implements Any allowing a TypeId to be retrieved

impl<'s, 'value, 'vm, T, V> Pushable<'vm> for Opaque<T, V> where
    T: Pushable<'vm>,
    V: ?Sized
[src]

impl<'vm, 'value, V> Getable<'vm, 'value> for Opaque<Variants<'value>, V> where
    V: ?Sized
[src]

type Proxy = Variants<'value>

impl<T, V> AsRef<V> for Opaque<T, V> where
    V: ?Sized,
    Self: Deref<Target = V>, 
[src]

impl<'a, T, V> IntoIterator for &'a Opaque<T, [V]> where
    T: AsVariant<'a, 'a>, 
[src]

type Item = OpaqueRef<'a, V>

The type of the elements being iterated over.

type IntoIter = Iter<'a, 'a, T, V>

Which kind of iterator are we turning this into?

impl<T, V> Clone for Opaque<T, V> where
    T: Clone
[src]

impl<T, V: ?Sized> Eq for Opaque<T, V> where
    T: AsValueRef,
    Self: Borrow<V>,
    V: Eq
[src]

impl<T, V: ?Sized> Ord for Opaque<T, V> where
    T: AsValueRef,
    Self: Borrow<V>,
    V: Ord
[src]

impl<T, V: ?Sized> PartialEq<Opaque<T, V>> for Opaque<T, V> where
    T: AsValueRef,
    Self: Borrow<V>,
    V: PartialEq
[src]

impl<T, V: ?Sized> PartialOrd<Opaque<T, V>> for Opaque<T, V> where
    T: AsValueRef,
    Self: Borrow<V>,
    V: PartialOrd
[src]

impl<T, V> Debug for Opaque<T, V> where
    T: Debug
[src]

impl<T, V> Deref for Opaque<T, V> where
    T: AsValueRef,
    V: Userdata
[src]

type Target = V

The resulting type after dereferencing.

impl<'s, 'value, T> Deref for Opaque<T, GcPtr<ClosureData>> where
    T: AsVariant<'s, 'value>, 
[src]

type Target = GcPtr<ClosureData>

The resulting type after dereferencing.

impl<T, V> Deref for Opaque<T, [V]> where
    T: AsValueRef,
    V: ArrayRepr + Copy
[src]

type Target = [V]

The resulting type after dereferencing.

impl<T> Deref for Opaque<T, str> where
    T: AsValueRef, 
[src]

type Target = str

The resulting type after dereferencing.

impl<T, V> Borrow<V> for Opaque<T, V> where
    V: ?Sized,
    Self: Deref<Target = V>, 
[src]

Auto Trait Implementations

impl<T, V: ?Sized> Send for Opaque<T, V> where
    T: Send,
    V: Send

impl<T, V: ?Sized> Sync for Opaque<T, V> where
    T: Sync,
    V: Sync

impl<T, V: ?Sized> Unpin for Opaque<T, V> where
    T: Unpin,
    V: Unpin

impl<T, V: ?Sized> UnwindSafe for Opaque<T, V> where
    T: UnwindSafe,
    V: UnwindSafe

impl<T, V: ?Sized> RefUnwindSafe for Opaque<T, V> where
    T: RefUnwindSafe,
    V: RefUnwindSafe

Blanket Implementations

impl<D, T> FromPtr<D> for T[src]

impl<'vm, T> AsyncPushable<'vm> for T where
    T: Pushable<'vm>, 
[src]

impl<'vm, T> Pushable<'vm> for T where
    T: Userdata
[src]

impl<T> DowncastArc for T where
    T: Downcast + Send + Sync
[src]

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

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

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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<T> Borrow<T> for T where
    T: ?Sized
[src]

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

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

impl<Choices> CoproductSubsetter<CNil, HNil> for Choices[src]

type Remainder = Choices

impl<Source> Sculptor<HNil, HNil> for Source[src]

type Remainder = Source

impl<T, U, I> LiftInto<U, I> for T where
    U: LiftFrom<T, I>, 
[src]

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> Downcast for T where
    T: Any
[src]

impl<T> DowncastSync for T where
    T: Send + Sync + Any
[src]