Struct rustdb::exec::EvalEnv [−][src]
#[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
Construct a new EvalEnv.
Allocate and initialise local variables.
Execute list of instructions.