Struct rhai::plugin::NativeCallContext
source · [−]pub struct NativeCallContext<'a> { /* private fields */ }
Expand description
Context of a native Rust function call.
Implementations
sourceimpl NativeCallContext<'_>
impl NativeCallContext<'_>
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>>
use call_fn_raw
instead
Call a function inside the call context.
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 use the arguments after this call. If they are needed afterwards, clone them before calling this function.
If is_method
is true
, the first argument is assumed to be passed by reference and is
not consumed.
Deprecated
This method is deprecated. Use call_fn_raw
instead.
This method will be removed in the next major version.
sourceimpl<'a> NativeCallContext<'a>
impl<'a> NativeCallContext<'a>
sourcepub fn new(
engine: &'a Engine,
fn_name: &'a impl AsRef<str> + 'a + ?Sized,
lib: &'a [&Module]
) -> Self
👎 Deprecated since 1.3.0: NativeCallContext::new
will be moved under internals
. Use FnPtr::call
to call a function pointer directly.
pub fn new(
engine: &'a Engine,
fn_name: &'a impl AsRef<str> + 'a + ?Sized,
lib: &'a [&Module]
) -> Self
NativeCallContext::new
will be moved under internals
. Use FnPtr::call
to call a function pointer directly.
(internals) Create a new NativeCallContext
.
Exported under the metadata
feature only.
sourcepub fn new_with_all_fields(
engine: &'a Engine,
fn_name: &'a impl AsRef<str> + 'a + ?Sized,
source: Option<&'a impl AsRef<str> + 'a + ?Sized>,
global: &'a GlobalRuntimeState<'_>,
lib: &'a [&Module],
pos: Position,
level: usize
) -> Self
pub fn new_with_all_fields(
engine: &'a Engine,
fn_name: &'a impl AsRef<str> + 'a + ?Sized,
source: Option<&'a impl AsRef<str> + 'a + ?Sized>,
global: &'a GlobalRuntimeState<'_>,
lib: &'a [&Module],
pos: Position,
level: usize
) -> Self
(internals) Create a new NativeCallContext
.
Exported under the internals
feature only.
Not available under no_module
.
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) -> Option<&GlobalRuntimeState<'_>>
pub const fn global_runtime_state(&self) -> Option<&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.
sourcepub const fn namespaces(&self) -> &[&Module]
pub const fn namespaces(&self) -> &[&Module]
(internals) The current set of namespaces containing definitions of all script-defined functions.
Exported under the internals
feature only.
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_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 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.
Trait Implementations
sourceimpl<'a> Debug for NativeCallContext<'a>
impl<'a> Debug for NativeCallContext<'a>
sourceimpl<'a, M: AsRef<[&'a Module]> + ?Sized, S: AsRef<str> + 'a + ?Sized> From<(&'a Engine, &'a S, &'a M)> for NativeCallContext<'a>
impl<'a, M: AsRef<[&'a Module]> + ?Sized, S: AsRef<str> + 'a + ?Sized> From<(&'a Engine, &'a S, &'a M)> for NativeCallContext<'a>
Auto Trait Implementations
impl<'a> !RefUnwindSafe for NativeCallContext<'a>
impl<'a> !Send for NativeCallContext<'a>
impl<'a> !Sync for NativeCallContext<'a>
impl<'a> Unpin for NativeCallContext<'a>
impl<'a> !UnwindSafe for NativeCallContext<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more