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 const fn position(&self) -> Position
👎Deprecated since 1.22.0: use call_position
instead.
pub const fn position(&self) -> Position
call_position
instead.Position of the function call.
§Deprecated
This method is deprecated.
Use call_position
instead.
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_position(&self) -> Position
pub const fn call_position(&self) -> Position
Position of the function call.
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.