pub struct Interpreter {
pub global_env: Rc<Env>,
pub ctx: EvalContext,
}Expand description
The interpreter holds the global environment and state.
Fields§
§global_env: Rc<Env>§ctx: EvalContextImplementations§
Source§impl Interpreter
impl Interpreter
pub fn new() -> Self
pub fn new_with_sandbox(sandbox: &Sandbox) -> Self
pub fn eval(&self, expr: &Value) -> EvalResult
pub fn eval_str(&self, input: &str) -> EvalResult
Sourcepub fn eval_in_global(&self, expr: &Value) -> EvalResult
pub fn eval_in_global(&self, expr: &Value) -> EvalResult
Evaluate in the global environment so that define persists across calls.
Sourcepub fn eval_str_in_global(&self, input: &str) -> EvalResult
pub fn eval_str_in_global(&self, input: &str) -> EvalResult
Parse and evaluate in the global environment so that define persists across calls.
Sourcepub fn eval_str_compiled(&self, input: &str) -> EvalResult
pub fn eval_str_compiled(&self, input: &str) -> EvalResult
Parse, compile to bytecode, and execute via the VM.
Sourcepub fn eval_compiled(&self, expr: &Value) -> EvalResult
pub fn eval_compiled(&self, expr: &Value) -> EvalResult
Compile a pre-parsed Value AST to bytecode and execute via the VM.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Interpreter
impl !RefUnwindSafe for Interpreter
impl !Send for Interpreter
impl !Sync for Interpreter
impl Unpin for Interpreter
impl UnsafeUnpin for Interpreter
impl !UnwindSafe for Interpreter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more