Struct rhai::NativeCallContext
source · pub struct NativeCallContext<'a> { /* private fields */ }
Expand description
Context of a native Rust function call.
Implementations§
source§impl NativeCallContext<'_>
impl NativeCallContext<'_>
sourcepub fn new(engine: &Engine, fn_name: &str, lib: &[Shared<Module>]) -> Self
👎Deprecated since 1.3.0: use FnPtr::call
to call a function pointer directly.
pub fn new(engine: &Engine, fn_name: &str, lib: &[Shared<Module>]) -> Self
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.
sourcepub 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.
source§impl<'a> NativeCallContext<'a>
impl<'a> NativeCallContext<'a>
sourcepub const fn new_with_all_fields(
engine: &'a Engine,
fn_name: &'a str,
source: Option<&'a str>,
global: &'a GlobalRuntimeState,
pos: Position
) -> Self
pub const fn new_with_all_fields( engine: &'a Engine, fn_name: &'a str, source: Option<&'a str>, global: &'a GlobalRuntimeState, pos: Position ) -> Self
(internals) Create a new NativeCallContext
.
Exported under the internals
feature only.
Not available under no_module
.
sourcepub fn from_stored_data(
engine: &'a Engine,
context: &'a NativeCallContextStore
) -> Self
👎Deprecated: This API is NOT deprecated, but it is considered volatile and may change in the future.
pub fn from_stored_data( engine: &'a Engine, context: &'a NativeCallContextStore ) -> Self
(internals) Create a NativeCallContext
from a NativeCallContextStore
.
Exported under the internals
feature only.
WARNING - Unstable API
This API is volatile and may change in the future.
sourcepub fn store_data(&self) -> NativeCallContextStore
👎Deprecated: This API is NOT deprecated, but it is considered volatile and may change in the future.
pub fn store_data(&self) -> NativeCallContextStore
(internals) Store this NativeCallContext
into a NativeCallContextStore
.
Exported under the internals
feature only.
WARNING - Unstable API
This API is volatile and may change in the future.
sourcepub const fn call_level(&self) -> usize
pub const fn call_level(&self) -> usize
Current nesting level of function calls.
sourcepub fn iter_imports(&self) -> impl Iterator<Item = (&str, &Module)>
pub fn iter_imports(&self) -> impl Iterator<Item = (&str, &Module)>
Get an iterator over the current set of modules imported via import
statements
in reverse order.
Not available under no_module
.
sourcepub const fn global_runtime_state(&self) -> &GlobalRuntimeState
pub const fn global_runtime_state(&self) -> &GlobalRuntimeState
(internals) The current GlobalRuntimeState
, if any.
Exported under the internals
feature only.
Not available under no_module
.
sourcepub fn iter_namespaces(&self) -> impl Iterator<Item = &Module>
pub fn iter_namespaces(&self) -> impl Iterator<Item = &Module>
Get an iterator over the namespaces containing definitions of all script-defined functions in reverse order (i.e. parent namespaces are iterated after child namespaces).
Not available under no_function
.
sourcepub fn namespaces(&self) -> &[Shared<Module>]
pub fn namespaces(&self) -> &[Shared<Module>]
(internals) The current stack of namespaces containing definitions of all script-defined functions.
Exported under the internals
feature only.
Not available under no_function
.
sourcepub fn call_fn<T: Variant + Clone>(
&self,
fn_name: impl AsRef<str>,
args: impl FuncArgs
) -> Result<T, Box<EvalAltResult>>
pub fn call_fn<T: Variant + Clone>( &self, fn_name: impl AsRef<str>, args: impl FuncArgs ) -> Result<T, Box<EvalAltResult>>
Call a function inside the call context with the provided arguments.
sourcepub fn call_native_fn<T: Variant + Clone>(
&self,
fn_name: impl AsRef<str>,
args: impl FuncArgs
) -> Result<T, Box<EvalAltResult>>
pub fn call_native_fn<T: Variant + Clone>( &self, fn_name: impl AsRef<str>, args: impl FuncArgs ) -> Result<T, Box<EvalAltResult>>
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).
sourcepub 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.
sourcepub 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.