Struct yksom::vm::objects::Block [−][src]
pub struct Block { pub inst: Val, pub func: Gc<Function>, pub upvars: Vec<Gc<UpVar>>, pub method_stack_base: usize, }
Fields
inst: Val
This Block
’s self
val. XXX This should probably be part of the corresponding closure’s
variables.
func: Gc<Function>
upvars: Vec<Gc<UpVar>>
method_stack_base: usize
For closures which perform a method return (i.e. they cause the method they are contained within to return), we have to reset the stack to the method’s stack base, so we have to cart that around with the Block.
Implementations
impl Block
[src]
pub fn new(
_: &mut VM,
inst: Val,
func: Gc<Function>,
upvars: Vec<Gc<UpVar>>,
method_stack_base: usize
) -> Val
[src]
_: &mut VM,
inst: Val,
func: Gc<Function>,
upvars: Vec<Gc<UpVar>>,
method_stack_base: usize
) -> Val
Trait Implementations
impl Debug for Block
[src]
impl NotUnboxable for Block
[src]
impl Obj for Block
[src]
fn dyn_objtype(self: Gc<Self>) -> ObjType
[src]
fn get_class(self: Gc<Self>, vm: &mut VM) -> Val
[src]
fn hashcode(self: Gc<Self>) -> u64
[src]
fn to_array(self: Gc<Self>) -> Result<Gc<dyn Array>, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn to_strval(self: Gc<Self>, _: &mut VM) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn num_inst_vars(self: Gc<Self>, _: &VM) -> usize where
Self: Send,
[src]
Self: Send,
fn inst_var_at(self: Gc<Self>, vm: &VM, i: usize) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn inst_var_at_put(
self: Gc<Self>,
vm: &VM,
i: usize,
v: Val
) -> Result<(), Box<VMError>> where
Self: Send,
[src]
self: Gc<Self>,
vm: &VM,
i: usize,
v: Val
) -> Result<(), Box<VMError>> where
Self: Send,
unsafe fn unchecked_inst_var_get(self: Gc<Self>, _: &VM, _: usize) -> Val where
Self: Send,
[src]
Self: Send,
unsafe fn unchecked_inst_var_set(self: Gc<Self>, _: &VM, _: usize, _: Val) where
Self: Send,
[src]
Self: Send,
fn length(self: Gc<Self>) -> usize where
Self: Send,
[src]
Self: Send,
fn add(self: Gc<Self>, _: &mut VM, _: Val) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn and(self: Gc<Self>, _: &mut VM, _: Val) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn div(self: Gc<Self>, _: &mut VM, _: Val) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn double_div(self: Gc<Self>, _: &mut VM, _: Val) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn modulus(self: Gc<Self>, _: &mut VM, _: Val) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn mul(self: Gc<Self>, _: &mut VM, _: Val) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn remainder(self: Gc<Self>, _: &mut VM, _: Val) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn shl(self: Gc<Self>, _: &mut VM, _: Val) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn shr(self: Gc<Self>, _: &mut VM, _: Val) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn sqrt(self: Gc<Self>, _: &mut VM) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn sub(self: Gc<Self>, _: &mut VM, _: Val) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn xor(self: Gc<Self>, _: &mut VM, _: Val) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn ref_equals(
self: Gc<Self>,
vm: &mut VM,
other: Val
) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
self: Gc<Self>,
vm: &mut VM,
other: Val
) -> Result<Val, Box<VMError>> where
Self: Send,
fn equals(self: Gc<Self>, _: &mut VM, _: Val) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn not_equals(self: Gc<Self>, _: &mut VM, _: Val) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn greater_than(self: Gc<Self>, _: &mut VM, _: Val) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn greater_than_equals(
self: Gc<Self>,
_: &mut VM,
_: Val
) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
self: Gc<Self>,
_: &mut VM,
_: Val
) -> Result<Val, Box<VMError>> where
Self: Send,
fn less_than(self: Gc<Self>, _: &mut VM, _: Val) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
Self: Send,
fn less_than_equals(
self: Gc<Self>,
_: &mut VM,
_: Val
) -> Result<Val, Box<VMError>> where
Self: Send,
[src]
self: Gc<Self>,
_: &mut VM,
_: Val
) -> Result<Val, Box<VMError>> where
Self: Send,
impl StaticObjType for Block
[src]
fn static_objtype() -> ObjType
[src]
Auto Trait Implementations
impl !NoTrace for Block
impl !RefUnwindSafe for Block
impl Send for Block
impl !Sync for Block
impl Unpin for Block
impl !UnwindSafe for Block
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?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,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
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.
pub 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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
U: TryFrom<T>,