pub struct ProgramState {
pub symbol_table: Ref<SymbolTable>,
pub environment: Option<Ref<SymbolTable>>,
pub functions: Ref<Functions>,
pub plan: Plan,
pub kinds: HashMap<u64, ValueKind>,
pub enums: HashMap<u64, MechEnum>,
pub dictionary: Ref<HashMap<u64, String>>,
}Fields§
§symbol_table: Ref<SymbolTable>§environment: Option<Ref<SymbolTable>>§functions: Ref<Functions>§plan: Plan§kinds: HashMap<u64, ValueKind>§enums: HashMap<u64, MechEnum>§dictionary: Ref<HashMap<u64, String>>Implementations§
Source§impl ProgramState
impl ProgramState
pub fn new() -> ProgramState
pub fn pretty_print(&self) -> String
pub fn get_symbol(&self, id: u64) -> Option<Ref<Value>>
pub fn get_mutable_symbol(&self, id: u64) -> Option<Ref<Value>>
pub fn contains_symbol(&self, id: u64) -> bool
pub fn get_environment(&self) -> Option<Ref<SymbolTable>>
Sourcepub fn get_env_symbol(&self, id: u64) -> Option<Ref<Value>>
pub fn get_env_symbol(&self, id: u64) -> Option<Ref<Value>>
Look up symbol in environment first, then in global symbol table
pub fn add_plan_step(&self, step: Box<dyn MechFunction>)
pub fn insert_function(&self, fxn: FunctionDescriptor)
pub fn save_symbol( &self, id: u64, name: String, value: Value, mutable: bool, ) -> Ref<Value>
pub fn save_env_symbol( &self, id: u64, name: String, value: Value, mutable: bool, ) -> Ref<Value>
Trait Implementations§
Source§impl Clone for ProgramState
impl Clone for ProgramState
Source§fn clone(&self) -> ProgramState
fn clone(&self) -> ProgramState
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ProgramState
impl !RefUnwindSafe for ProgramState
impl !Send for ProgramState
impl !Sync for ProgramState
impl Unpin for ProgramState
impl !UnwindSafe for ProgramState
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 moreSource§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.