Struct NativeCallContext
pub struct NativeCallContext<'a> { /* private fields */ }
Expand description
Context of a native Rust function call.
Implementations§
§impl NativeCallContext<'_>
impl NativeCallContext<'_>
pub fn new(
engine: &Engine,
fn_name: &str,
lib: &[Arc<Module>],
) -> NativeCallContext<'_>
👎Deprecated since 1.3.0: use FnPtr::call
to call a function pointer directly.
pub fn new( engine: &Engine, fn_name: &str, lib: &[Arc<Module>], ) -> NativeCallContext<'_>
FnPtr::call
to call a function pointer directly.Create a new NativeCallContext
.
§Unimplemented
This method is deprecated. It is no longer implemented and always panics.
Use FnPtr::call
to call a function pointer directly.
This method will be removed in the next major version.
pub fn call_fn_dynamic_raw(
&self,
fn_name: impl AsRef<str>,
is_method_call: bool,
args: &mut [&mut Dynamic],
) -> Result<Dynamic, Box<EvalAltResult>>
👎Deprecated since 1.2.0: use call_fn_raw
instead
pub fn call_fn_dynamic_raw( &self, fn_name: impl AsRef<str>, is_method_call: bool, args: &mut [&mut Dynamic], ) -> Result<Dynamic, Box<EvalAltResult>>
call_fn_raw
insteadCall a function inside the call context.
§Deprecated
This method is deprecated.
Use call_fn_raw
instead.
This method will be removed in the next major version.
§impl<'a> NativeCallContext<'a>
impl<'a> NativeCallContext<'a>
pub const fn call_level(&self) -> usize
pub const fn call_level(&self) -> usize
Current nesting level of function calls.
pub fn call_fn<T>(
&self,
fn_name: impl AsRef<str>,
args: impl FuncArgs,
) -> Result<T, Box<EvalAltResult>>where
T: Variant + Clone,
pub fn call_fn<T>(
&self,
fn_name: impl AsRef<str>,
args: impl FuncArgs,
) -> Result<T, Box<EvalAltResult>>where
T: Variant + Clone,
Call a function inside the call context with the provided arguments.
pub fn call_native_fn<T>(
&self,
fn_name: impl AsRef<str>,
args: impl FuncArgs,
) -> Result<T, Box<EvalAltResult>>where
T: Variant + Clone,
pub fn call_native_fn<T>(
&self,
fn_name: impl AsRef<str>,
args: impl FuncArgs,
) -> Result<T, Box<EvalAltResult>>where
T: Variant + Clone,
Call a registered native Rust function inside the call context with the provided arguments.
This is often useful because Rust functions typically only want to cross-call other registered Rust functions and not have to worry about scripted functions hijacking the process unknowingly (or deliberately).
pub fn call_fn_raw(
&self,
fn_name: impl AsRef<str>,
is_ref_mut: bool,
is_method_call: bool,
args: &mut [&mut Dynamic],
) -> Result<Dynamic, Box<EvalAltResult>>
pub fn call_fn_raw( &self, fn_name: impl AsRef<str>, is_ref_mut: bool, is_method_call: bool, args: &mut [&mut Dynamic], ) -> Result<Dynamic, Box<EvalAltResult>>
Call a function (native Rust or scripted) inside the call context.
If is_method_call
is true
, the first argument is assumed to be the this
pointer for
a script-defined function (or the object of a method call).
§WARNING - Low Level API
This function is very low level.
§Arguments
All arguments may be consumed, meaning that they may be replaced by ()
. This is to avoid
unnecessarily cloning the arguments.
DO NOT reuse the arguments after this call. If they are needed afterwards, clone them before calling this function.
If is_ref_mut
is true
, the first argument is assumed to be passed by reference and is
not consumed.
pub fn call_native_fn_raw(
&self,
fn_name: impl AsRef<str>,
is_ref_mut: bool,
args: &mut [&mut Dynamic],
) -> Result<Dynamic, Box<EvalAltResult>>
pub fn call_native_fn_raw( &self, fn_name: impl AsRef<str>, is_ref_mut: bool, args: &mut [&mut Dynamic], ) -> Result<Dynamic, Box<EvalAltResult>>
Call a registered native Rust function inside the call context.
This is often useful because Rust functions typically only want to cross-call other registered Rust functions and not have to worry about scripted functions hijacking the process unknowingly (or deliberately).
§WARNING - Low Level API
This function is very low level.
§Arguments
All arguments may be consumed, meaning that they may be replaced by ()
. This is to avoid
unnecessarily cloning the arguments.
DO NOT reuse the arguments after this call. If they are needed afterwards, clone them before calling this function.
If is_ref_mut
is true
, the first argument is assumed to be passed by reference and is
not consumed.