[][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<'vm, V> Opaque<RootedValue<T>, V> where
    V: ?Sized
[src]

pub fn vm_(&self) -> &'vm Thread[src]

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

pub fn vm(&self) -> &Thread[src]

pub fn to_value<'vm>(&'vm self) -> V where
    V: Getable<'vm, 'vm>, 
[src]

Converts the value into its Rust representation

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]

impl<T, V> Opaque<RootedValue<T>, V> where
    T: VmRootInternal
[src]

pub fn get2<'value>(&'value self, index: VmInt) -> Option<V> where
    V: for<'vm> Getable<'vm, 'value>, 
[src]

Trait Implementations

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

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

impl<T, V> Clone for Opaque<T, V> where
    T: Clone
[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: ?Sized> Eq for Opaque<T, V> where
    T: AsValueRef,
    Self: Borrow<V>,
    V: Eq
[src]

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

type Proxy = Variants<'value>

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: ?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<'s, 'value, 'vm, T, V> Pushable<'vm> for Opaque<T, V> where
    T: Pushable<'vm>,
    V: ?Sized
[src]

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

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

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

Auto Trait Implementations

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

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

Blanket Implementations

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

impl<T> Any for T where
    T: Any

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

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

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

impl<'_, T> Captures<'_> for T[src]

impl<T> CloneAny for T where
    T: Clone + Any

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

type Remainder = Choices

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

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

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

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

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

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

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

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

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

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

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

type Remainder = Source

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.