#[non_exhaustive]pub struct EvalEnv<'r> {
pub stack: Vec<Value>,
pub bp: usize,
pub db: DB,
pub tr: &'r mut dyn Transaction,
pub call_depth: usize,
}
Expand description
Evaluation environment - stack of Values, references to DB and Transaction.
Fields (Non-exhaustive)
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.stack: Vec<Value>
Stack of values, holds function parameters and local variables.
bp: usize
“Base Pointer” - stack index of current parameters and local variables.
db: DB
Pointer to Database.
tr: &'r mut dyn Transaction
Pointer to Transaction.
call_depth: usize
Function call depth, prevents stack overflow.
Implementations
sourceimpl<'r> EvalEnv<'r>
impl<'r> EvalEnv<'r>
sourcepub fn new(db: DB, tr: &'r mut dyn Transaction) -> Self
pub fn new(db: DB, tr: &'r mut dyn Transaction) -> Self
Construct a new EvalEnv.
sourcepub fn alloc_locals(&mut self, dt: &[DataType], param_count: usize)
pub fn alloc_locals(&mut self, dt: &[DataType], param_count: usize)
Allocate and initialise local variables.
sourcepub fn go(&mut self, ilist: &[Instruction])
pub fn go(&mut self, ilist: &[Instruction])
Execute list of instructions.
Auto Trait Implementations
impl<'r> !RefUnwindSafe for EvalEnv<'r>
impl<'r> !Send for EvalEnv<'r>
impl<'r> !Sync for EvalEnv<'r>
impl<'r> Unpin for EvalEnv<'r>
impl<'r> !UnwindSafe for EvalEnv<'r>
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