pub struct CallStack {
pub session: Session,
pub frames: Vec<Frame>,
}
Fields§
§session: Session
§frames: Vec<Frame>
Implementations§
source§impl CallStack
impl CallStack
pub fn eval_list_eager(&mut self, l: ExprList) -> EvalResult
pub fn parse(&self, input: &str) -> ParseResult
pub fn parse_and_eval(self, input: &str) -> EvalResult
source§impl CallStack
impl CallStack
pub fn with_global_env(self, env: Rc<Environment>) -> Self
pub fn map_session(self, f: impl Fn(Session) -> Session) -> Self
pub fn add_frame(&mut self, call: Expr, env: Rc<Environment>) -> usize
pub fn add_child_frame(&mut self, call: Expr, env: Rc<Environment>) -> usize
pub fn frame(&self, n: i32) -> Option<&Frame>
pub fn last_frame(&self) -> Frame
pub fn parent_frame(&self) -> Frame
pub fn pop_frame_and_return(&mut self, result: EvalResult) -> EvalResult
Trait Implementations§
source§impl Context for CallStack
impl Context for CallStack
fn eval_binary(&mut self, exprs: (Expr, Expr)) -> Result<(Obj, Obj), Signal>
fn assign_lazy(&mut self, to: Expr, from: Expr) -> EvalResult
fn assign(&mut self, to: Expr, from: Obj) -> EvalResult
fn env(&self) -> Rc<Environment>
fn eval_call_mut(&mut self, expr: Expr) -> EvalResult
fn eval_call(&mut self, expr: Expr) -> EvalResult
fn eval(&mut self, expr: Expr) -> EvalResult
fn eval_and_finalize(&mut self, expr: Expr) -> EvalResult
fn eval_mut(&mut self, expr: Expr) -> EvalResult
fn get(&mut self, name: String) -> EvalResult
fn get_mut(&mut self, name: String) -> EvalResult
fn get_ellipsis(&mut self) -> EvalResult
fn eval_in(&mut self, expr: Expr, env: Rc<Environment>) -> EvalResult
fn eval_list_lazy(&mut self, l: ExprList) -> EvalResult
impl StructuralPartialEq for CallStack
Auto Trait Implementations§
impl Freeze for CallStack
impl !RefUnwindSafe for CallStack
impl !Send for CallStack
impl !Sync for CallStack
impl Unpin for CallStack
impl !UnwindSafe for CallStack
Blanket Implementations§
source§impl<T> AsDynCompare for Twhere
T: Any + DynCompare,
impl<T> AsDynCompare for Twhere
T: Any + DynCompare,
fn as_any(&self) -> &(dyn Any + 'static)
fn as_dyn_compare(&self) -> &(dyn DynCompare + 'static)
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> DynCompare for T
impl<T> DynCompare for T
fn dyn_eq(&self, other: &(dyn DynCompare + 'static)) -> bool
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