Struct koto_runtime::KFunction
source · pub struct KFunction {
pub chunk: Ptr<Chunk>,
pub ip: u32,
pub arg_count: u8,
pub variadic: bool,
pub arg_is_unpacked_tuple: bool,
pub generator: bool,
}
Expand description
Fields§
§chunk: Ptr<Chunk>
The Chunk in which the function can be found.
ip: u32
The start ip of the function.
arg_count: u8
The expected number of arguments for the function
variadic: bool
If the function is variadic, then extra args will be captured in a tuple.
arg_is_unpacked_tuple: bool
If the function has a single arg, and that arg is an unpacked tuple
This is used to optimize calls where the caller has a series of args that might be unpacked by the function, and it would be wasteful to create a Tuple when it’s going to be immediately unpacked and discarded.
generator: bool
If the function is a generator, then calling the function will yield an iterator that executes the function’s body for each iteration step, pausing when a yield instruction is encountered. See Vm::call_generator and Iterable::Generator.
Trait Implementations§
source§impl PartialEq for KFunction
impl PartialEq for KFunction
impl StructuralPartialEq for KFunction
Auto Trait Implementations§
impl Freeze for KFunction
impl RefUnwindSafe for KFunction
impl Send for KFunction
impl Sync for KFunction
impl Unpin for KFunction
impl UnwindSafe for KFunction
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.