Trait gluon_vm::api::Pushable
[−]
[src]
pub trait Pushable<'vm>: AsyncPushable<'vm> { fn push(self, vm: &'vm Thread, context: &mut Context) -> Result<()>; }
Trait which allows a rust value to be pushed to the virtual machine
Required Methods
fn push(self, vm: &'vm Thread, context: &mut Context) -> Result<()>
Pushes self
to stack
. If the call is successful a single element should have been added
to the stack and Ok(())
should be returned. If the call is unsuccessful Status:Error
should be returned and the stack should be left intact
Implementors
impl<'vm, T> Pushable<'vm> for Record<T> where
T: PushableFieldList<'vm>,impl<'vm, T: VmType> Pushable<'vm> for Generic<T>
impl<'vm, T: Userdata> Pushable<'vm> for T
impl<'vm, T> Pushable<'vm> for WithVM<'vm, T> where
T: Pushable<'vm>,impl<'vm> Pushable<'vm> for ()
impl<'vm> Pushable<'vm> for u8
impl<'vm> Pushable<'vm> for i32
impl<'vm> Pushable<'vm> for u32
impl<'vm> Pushable<'vm> for usize
impl<'vm> Pushable<'vm> for VmInt
impl<'vm> Pushable<'vm> for f64
impl<'vm> Pushable<'vm> for bool
impl<'vm> Pushable<'vm> for Ordering
impl<'vm, 's> Pushable<'vm> for &'s String
impl<'vm, 's> Pushable<'vm> for &'s str
impl<'vm> Pushable<'vm> for String
impl<'vm> Pushable<'vm> for char
impl<'s, 'vm, T> Pushable<'vm> for Ref<'s, T> where
&'t T: Pushable<'vm>,
T: VmType,impl<'vm, 's, T> Pushable<'vm> for &'s [T] where
T: Traverseable + Pushable<'vm> + 's,
&'s [T]: DataDef<Value = ValueArray>,impl<'vm, T> Pushable<'vm> for Vec<T> where
T: Pushable<'vm>,impl<'vm, T: Pushable<'vm>> Pushable<'vm> for Option<T>
impl<'vm, T: Pushable<'vm>, E: Pushable<'vm>> Pushable<'vm> for StdResult<T, E>
impl<'vm, T: Pushable<'vm>, E: Display> Pushable<'vm> for RuntimeResult<T, E>
impl<'vm, T: Pushable<'vm>> Pushable<'vm> for IO<T>
impl<'vm, T, V> Pushable<'vm> for OpaqueValue<T, V> where
T: Deref<Target = Thread>,
V: VmType,
V::Type: Sized,impl<'vm, T: VmType> Pushable<'vm> for Array<'vm, T> where
T::Type: Sized,impl<'vm, T, R: ?Sized> Pushable<'vm> for PushAsRef<T, R> where
T: AsRef<R>,
&'a R: Pushable<'vm>,impl<'vm, _0, _1, _2, _3, _4, _5, _6> Pushable<'vm> for (_0, _1, _2, _3, _4, _5, _6) where
_0: Pushable<'vm>,
_1: Pushable<'vm>,
_2: Pushable<'vm>,
_3: Pushable<'vm>,
_4: Pushable<'vm>,
_5: Pushable<'vm>,
_6: Pushable<'vm>,impl<'vm, _1, _2, _3, _4, _5, _6> Pushable<'vm> for (_1, _2, _3, _4, _5, _6) where
_1: Pushable<'vm>,
_2: Pushable<'vm>,
_3: Pushable<'vm>,
_4: Pushable<'vm>,
_5: Pushable<'vm>,
_6: Pushable<'vm>,impl<'vm, _2, _3, _4, _5, _6> Pushable<'vm> for (_2, _3, _4, _5, _6) where
_2: Pushable<'vm>,
_3: Pushable<'vm>,
_4: Pushable<'vm>,
_5: Pushable<'vm>,
_6: Pushable<'vm>,impl<'vm, _3, _4, _5, _6> Pushable<'vm> for (_3, _4, _5, _6) where
_3: Pushable<'vm>,
_4: Pushable<'vm>,
_5: Pushable<'vm>,
_6: Pushable<'vm>,impl<'vm, _4, _5, _6> Pushable<'vm> for (_4, _5, _6) where
_4: Pushable<'vm>,
_5: Pushable<'vm>,
_6: Pushable<'vm>,impl<'vm, _5, _6> Pushable<'vm> for (_5, _6) where
_5: Pushable<'vm>,
_6: Pushable<'vm>,impl<'vm, F> Pushable<'vm> for Primitive<F> where
F: FunctionType + VmType,impl<'vm, F> Pushable<'vm> for RefPrimitive<'vm, F> where
F: VmFunction<'vm> + FunctionType + VmType + 'vm,impl<'vm> Pushable<'vm> for CPrimitive
impl<'vm, T, F: Any> Pushable<'vm> for Function<T, F> where
T: Deref<Target = Thread>,
F: VmType,impl<'vm> Pushable<'vm> for RootedThread