[−][src]Struct gluon_vm::api::Opaque
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]
V: ?Sized,
impl<T, V> Opaque<RootedValue<T>, V> where
T: VmRootInternal,
V: ?Sized,
[src]
T: VmRootInternal,
V: ?Sized,
pub fn vm(&self) -> &Thread
[src]
pub fn to_value<'vm>(&'vm self) -> V where
V: Getable<'vm, 'vm>,
[src]
V: Getable<'vm, 'vm>,
Converts the value into its Rust representation
impl<T, V> Opaque<T, V> where
V: ?Sized,
[src]
V: ?Sized,
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]
T: AsVariant<'s, 'value>,
V: ?Sized,
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]
T: AsVariant<'s, 'value>,
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]
T: VmRootInternal,
pub fn get2<'value>(&'value self, index: VmInt) -> Option<V> where
V: for<'vm> Getable<'vm, 'value>,
[src]
V: for<'vm> Getable<'vm, 'value>,
Trait Implementations
impl<T, V> AsRef<V> for Opaque<T, V> where
V: ?Sized,
Self: Deref<Target = V>,
[src]
V: ?Sized,
Self: Deref<Target = V>,
impl<T, V> Borrow<V> for Opaque<T, V> where
V: ?Sized,
Self: Deref<Target = V>,
[src]
V: ?Sized,
Self: Deref<Target = V>,
impl<T, V> Clone for Opaque<T, V> where
T: Clone,
[src]
T: Clone,
fn clone(&self) -> Self
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<T, V> Debug for Opaque<T, V> where
T: Debug,
[src]
T: Debug,
impl<T, V> Deref for Opaque<T, V> where
T: AsValueRef,
V: Userdata,
[src]
T: AsValueRef,
V: Userdata,
impl<'s, 'value, T> Deref for Opaque<T, GcPtr<ClosureData>> where
T: AsVariant<'s, 'value>,
[src]
T: AsVariant<'s, 'value>,
type Target = GcPtr<ClosureData>
The resulting type after dereferencing.
fn deref(&self) -> &Self::Target
[src]
impl<T, V> Deref for Opaque<T, [V]> where
T: AsValueRef,
V: ArrayRepr + Copy,
[src]
T: AsValueRef,
V: ArrayRepr + Copy,
impl<T> Deref for Opaque<T, str> where
T: AsValueRef,
[src]
T: AsValueRef,
impl<T, V: ?Sized> Eq for Opaque<T, V> where
T: AsValueRef,
Self: Borrow<V>,
V: Eq,
[src]
T: AsValueRef,
Self: Borrow<V>,
V: Eq,
impl<'vm, 'value, V> Getable<'vm, 'value> for Opaque<Variants<'value>, V> where
V: ?Sized,
[src]
V: ?Sized,
type Proxy = Variants<'value>
fn to_proxy(_vm: &'vm Thread, value: Variants<'value>) -> Result<Self::Proxy>
[src]
fn from_proxy(vm: &'vm Thread, proxy: &'value mut Self::Proxy) -> Self
[src]
fn from_value(_vm: &'vm Thread, value: Variants<'value>) -> Self
[src]
impl<'a, T, V> IntoIterator for &'a Opaque<T, [V]> where
T: AsVariant<'a, 'a>,
[src]
T: AsVariant<'a, 'a>,
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?
fn into_iter(self) -> Self::IntoIter
[src]
impl<T, V: ?Sized> Ord for Opaque<T, V> where
T: AsValueRef,
Self: Borrow<V>,
V: Ord,
[src]
T: AsValueRef,
Self: Borrow<V>,
V: Ord,
fn cmp(&self, other: &Self) -> Ordering
[src]
#[must_use]fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn clamp(self, min: Self, max: Self) -> Self
[src]
impl<T, V: ?Sized> PartialEq<Opaque<T, V>> for Opaque<T, V> where
T: AsValueRef,
Self: Borrow<V>,
V: PartialEq,
[src]
T: AsValueRef,
Self: Borrow<V>,
V: PartialEq,
impl<T, V: ?Sized> PartialOrd<Opaque<T, V>> for Opaque<T, V> where
T: AsValueRef,
Self: Borrow<V>,
V: PartialOrd,
[src]
T: AsValueRef,
Self: Borrow<V>,
V: PartialOrd,
fn partial_cmp(&self, other: &Self) -> Option<Ordering>
[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl<'s, 'value, 'vm, T, V> Pushable<'vm> for Opaque<T, V> where
T: Pushable<'vm>,
V: ?Sized,
[src]
T: Pushable<'vm>,
V: ?Sized,
fn push(self, context: &mut ActiveThread<'vm>) -> Result<()>
[src]
fn status_push(self, context: &mut ActiveThread<'vm>) -> Status where
Self: Sized,
[src]
Self: Sized,
unsafe fn marshal_unrooted(self, vm: &'vm Thread) -> Result<Value> where
Self: Sized,
[src]
Self: Sized,
fn marshal<T>(self, vm: &'vm Thread) -> Result<RootedValue<T>> where
Self: Sized,
T: VmRoot<'vm>,
[src]
Self: Sized,
T: VmRoot<'vm>,
impl<T> Serialize for Opaque<T, str> where
T: AsValueRef,
[src]
T: AsValueRef,
impl<T> SerializeState<Thread> for Opaque<T, str> where
T: AsValueRef,
[src]
T: AsValueRef,
fn serialize_state<S>(
&self,
serializer: S,
_thread: &Thread
) -> StdResult<S::Ok, S::Error> where
S: Serializer,
[src]
&self,
serializer: S,
_thread: &Thread
) -> StdResult<S::Ok, S::Error> where
S: Serializer,
impl<T, V> Trace for Opaque<T, V> where
T: Trace,
[src]
T: Trace,
impl<T, V: ?Sized> VmType for Opaque<T, V> where
V: VmType,
V::Type: Sized,
[src]
V: VmType,
V::Type: Sized,
Auto Trait Implementations
impl<T, V: ?Sized> RefUnwindSafe for Opaque<T, V> where
T: RefUnwindSafe,
V: RefUnwindSafe,
T: RefUnwindSafe,
V: RefUnwindSafe,
impl<T, V: ?Sized> Send for Opaque<T, V> where
T: Send,
V: Send,
T: Send,
V: Send,
impl<T, V: ?Sized> Sync for Opaque<T, V> where
T: Sync,
V: Sync,
T: Sync,
V: Sync,
impl<T, V: ?Sized> Unpin for Opaque<T, V> where
T: Unpin,
V: Unpin,
T: Unpin,
V: Unpin,
impl<T, V: ?Sized> UnwindSafe for Opaque<T, V> where
T: UnwindSafe,
V: UnwindSafe,
T: UnwindSafe,
V: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Any for T where
T: Any,
T: Any,
impl<'vm, T> AsyncPushable<'vm> for T where
T: Pushable<'vm>,
[src]
T: Pushable<'vm>,
fn async_push(
Self,
&mut ActiveThread<'vm>,
Lock,
u32
) -> Poll<Result<(), Error>>
[src]
Self,
&mut ActiveThread<'vm>,
Lock,
u32
) -> Poll<Result<(), Error>>
fn async_status_push(
self,
context: &mut ActiveThread<'vm>,
lock: Lock,
frame_index: VmIndex
) -> Status where
Self: Sized,
[src]
self,
context: &mut ActiveThread<'vm>,
lock: Lock,
frame_index: VmIndex
) -> Status where
Self: Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<'_, T> Captures<'_> for T
[src]
impl<T> CloneAny for T where
T: Clone + Any,
T: Clone + Any,
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
[src]
type Remainder = Choices
fn subset(
self
) -> Result<CNil, <Choices as CoproductSubsetter<CNil, HNil>>::Remainder>
[src]
self
) -> Result<CNil, <Choices as CoproductSubsetter<CNil, HNil>>::Remainder>
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> Downcast for T where
T: Any,
[src]
T: Any,
fn into_any(self: Box<T>) -> Box<dyn Any + 'static>
[src]
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
[src]
fn as_any(&self) -> &(dyn Any + 'static)
[src]
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
[src]
impl<T> DowncastArc for T where
T: Downcast + Send + Sync,
[src]
T: Downcast + Send + Sync,
impl<T> DowncastSync for T where
T: Send + Sync + Any,
[src]
T: Send + Sync + Any,
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
fn equivalent(&self, key: &K) -> bool
[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]
U: From<T>,
impl<T, U, I> LiftInto<U, I> for T where
U: LiftFrom<T, I>,
[src]
U: LiftFrom<T, I>,
impl<'vm, T> Pushable<'vm> for T where
T: Userdata,
[src]
T: Userdata,
fn push(Self, &mut ActiveThread<'vm>) -> Result<(), Error>
[src]
fn status_push(self, context: &mut ActiveThread<'vm>) -> Status where
Self: Sized,
[src]
Self: Sized,
unsafe fn marshal_unrooted(self, vm: &'vm Thread) -> Result<Value> where
Self: Sized,
[src]
Self: Sized,
fn marshal<T>(self, vm: &'vm Thread) -> Result<RootedValue<T>> where
Self: Sized,
T: VmRoot<'vm>,
[src]
Self: Sized,
T: VmRoot<'vm>,
impl<Source> Sculptor<HNil, HNil> for Source
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,