Trait gluon_vm::api::Pushable[][src]

pub trait Pushable<'vm>: AsyncPushable<'vm> {
    fn push(self, vm: &'vm Thread, context: &mut Context) -> Result<()>;

    fn status_push(self, vm: &'vm Thread, context: &mut Context) -> Status
    where
        Self: Sized
, { ... }
unsafe fn marshal_unrooted(self, vm: &'vm Thread) -> Result<Value>
    where
        Self: Sized
, { ... }
fn marshal<T>(self, vm: &'vm Thread) -> Result<RootedValue<T>>
    where
        Self: Sized,
        T: VmRoot<'vm>
, { ... } }

Trait which allows a rust value to be pushed to the virtual machine

Required Methods

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

Provided Methods

Implementations on Foreign Types

impl<'vm> Pushable<'vm> for ()
[src]

impl<'vm> Pushable<'vm> for u8
[src]

impl<'vm> Pushable<'vm> for i16
[src]

impl<'vm> Pushable<'vm> for i32
[src]

impl<'vm> Pushable<'vm> for i64
[src]

impl<'vm> Pushable<'vm> for u16
[src]

impl<'vm> Pushable<'vm> for u32
[src]

impl<'vm> Pushable<'vm> for u64
[src]

impl<'vm> Pushable<'vm> for usize
[src]

impl<'vm> Pushable<'vm> for isize
[src]

impl<'vm> Pushable<'vm> for f64
[src]

impl<'vm> Pushable<'vm> for bool
[src]

impl<'vm> Pushable<'vm> for Ordering
[src]

impl<'vm, 's> Pushable<'vm> for &'s String
[src]

impl<'vm, 's> Pushable<'vm> for &'s str
[src]

impl<'vm> Pushable<'vm> for String
[src]

impl<'vm> Pushable<'vm> for char
[src]

impl<'s, 'vm, T> Pushable<'vm> for Ref<'s, T> where
    &'t T: Pushable<'vm>,
    T: VmType
[src]

impl<'vm, 's, T> Pushable<'vm> for &'s [T] where
    T: Traverseable + Pushable<'vm> + 's,
    &'s [T]: DataDef<Value = ValueArray>, 
[src]

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

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

impl<'vm, T: Pushable<'vm>, E: Pushable<'vm>> Pushable<'vm> for StdResult<T, E>
[src]

impl<'vm, A, B, C, D, E, F, G, H, I, J, K, L> Pushable<'vm> for (A, B, C, D, E, F, G, H, I, J, K, L) where
    A: Pushable<'vm>,
    B: Pushable<'vm>,
    C: Pushable<'vm>,
    D: Pushable<'vm>,
    E: Pushable<'vm>,
    F: Pushable<'vm>,
    G: Pushable<'vm>,
    H: Pushable<'vm>,
    I: Pushable<'vm>,
    J: Pushable<'vm>,
    K: Pushable<'vm>,
    L: Pushable<'vm>, 
[src]

impl<'vm, B, C, D, E, F, G, H, I, J, K, L> Pushable<'vm> for (B, C, D, E, F, G, H, I, J, K, L) where
    B: Pushable<'vm>,
    C: Pushable<'vm>,
    D: Pushable<'vm>,
    E: Pushable<'vm>,
    F: Pushable<'vm>,
    G: Pushable<'vm>,
    H: Pushable<'vm>,
    I: Pushable<'vm>,
    J: Pushable<'vm>,
    K: Pushable<'vm>,
    L: Pushable<'vm>, 
[src]

impl<'vm, C, D, E, F, G, H, I, J, K, L> Pushable<'vm> for (C, D, E, F, G, H, I, J, K, L) where
    C: Pushable<'vm>,
    D: Pushable<'vm>,
    E: Pushable<'vm>,
    F: Pushable<'vm>,
    G: Pushable<'vm>,
    H: Pushable<'vm>,
    I: Pushable<'vm>,
    J: Pushable<'vm>,
    K: Pushable<'vm>,
    L: Pushable<'vm>, 
[src]

impl<'vm, D, E, F, G, H, I, J, K, L> Pushable<'vm> for (D, E, F, G, H, I, J, K, L) where
    D: Pushable<'vm>,
    E: Pushable<'vm>,
    F: Pushable<'vm>,
    G: Pushable<'vm>,
    H: Pushable<'vm>,
    I: Pushable<'vm>,
    J: Pushable<'vm>,
    K: Pushable<'vm>,
    L: Pushable<'vm>, 
[src]

impl<'vm, E, F, G, H, I, J, K, L> Pushable<'vm> for (E, F, G, H, I, J, K, L) where
    E: Pushable<'vm>,
    F: Pushable<'vm>,
    G: Pushable<'vm>,
    H: Pushable<'vm>,
    I: Pushable<'vm>,
    J: Pushable<'vm>,
    K: Pushable<'vm>,
    L: Pushable<'vm>, 
[src]

impl<'vm, F, G, H, I, J, K, L> Pushable<'vm> for (F, G, H, I, J, K, L) where
    F: Pushable<'vm>,
    G: Pushable<'vm>,
    H: Pushable<'vm>,
    I: Pushable<'vm>,
    J: Pushable<'vm>,
    K: Pushable<'vm>,
    L: Pushable<'vm>, 
[src]

impl<'vm, G, H, I, J, K, L> Pushable<'vm> for (G, H, I, J, K, L) where
    G: Pushable<'vm>,
    H: Pushable<'vm>,
    I: Pushable<'vm>,
    J: Pushable<'vm>,
    K: Pushable<'vm>,
    L: Pushable<'vm>, 
[src]

impl<'vm, H, I, J, K, L> Pushable<'vm> for (H, I, J, K, L) where
    H: Pushable<'vm>,
    I: Pushable<'vm>,
    J: Pushable<'vm>,
    K: Pushable<'vm>,
    L: Pushable<'vm>, 
[src]

impl<'vm, I, J, K, L> Pushable<'vm> for (I, J, K, L) where
    I: Pushable<'vm>,
    J: Pushable<'vm>,
    K: Pushable<'vm>,
    L: Pushable<'vm>, 
[src]

impl<'vm, J, K, L> Pushable<'vm> for (J, K, L) where
    J: Pushable<'vm>,
    K: Pushable<'vm>,
    L: Pushable<'vm>, 
[src]

impl<'vm, K, L> Pushable<'vm> for (K, L) where
    K: Pushable<'vm>,
    L: Pushable<'vm>, 
[src]

Implementors