diff --git a/src/engine.rs b/src/engine.rs index 8ae0a694..a42290a4 100644 --- a/src/engine.rs +++ b/src/engine.rs @@ -818,12 +818,19 @@ impl EvalState { /// Context of a script evaluation process. #[derive(Debug)] pub struct EvalContext<'a, 'x, 'px, 'm, 's, 'b, 't, 'pt> { + /// The current [`Engine`]. pub(crate) engine: &'a Engine, + /// The current [`Scope`]. pub(crate) scope: &'x mut Scope<'px>, + /// The current [`GlobalRuntimeState`]. pub(crate) global: &'m mut GlobalRuntimeState, + /// The current [evaluation state][EvalState]. pub(crate) state: &'s mut EvalState, + /// The current stack of imported [modules][Module]. pub(crate) lib: &'b [&'b Module], + /// The current bound `this` pointer, if any. pub(crate) this_ptr: &'t mut Option<&'pt mut Dynamic>, + /// The current nesting level of function calls. pub(crate) level: usize, } diff --git a/src/func/native.rs b/src/func/native.rs index 29317110..1736bc8d 100644 --- a/src/func/native.rs +++ b/src/func/native.rs @@ -58,11 +58,17 @@ pub type LockGuard<'a, T> = std::sync::RwLockWriteGuard<'a, T>; /// Context of a native Rust function call. #[derive(Debug)] pub struct NativeCallContext<'a> { + /// The current [`Engine`]. engine: &'a Engine, + /// Name of function called. fn_name: &'a str, + /// Function source, if any. source: Option<&'a str>, + /// The current [`GlobalRuntimeState`], if any. global: Option<&'a GlobalRuntimeState>, + /// The current stack of loaded [modules][Module]. lib: &'a [&'a Module], + /// [Position] of the function call. pos: Position, } @@ -174,7 +180,7 @@ impl<'a> NativeCallContext<'a> { pub const fn fn_name(&self) -> &str { self.fn_name } - /// [Position][`Position`] of the function call. + /// [Position] of the function call. #[inline(always)] #[must_use] pub const fn position(&self) -> Position { @@ -204,7 +210,7 @@ impl<'a> NativeCallContext<'a> { ) -> impl Iterator)> { self.global.iter().flat_map(|&m| m.iter_modules_raw()) } - /// _(internals)_ The current [`GlobalRuntimeState`]. + /// _(internals)_ The current [`GlobalRuntimeState`], if any. /// Exported under the `internals` feature only. /// /// Not available under `no_module`.