Context

Struct Context 

Source
pub struct Context { /* private fields */ }
Expand description

Context that is passed while evaluating an AST by an Evaluator.

Contains all variables and states that can be shared between functions during evaluations. Functions should be free to store any state that will be shared between function invocations.

Variables are stored in a map, keys are Strings and values are also Strings. State is stored in a heterogeneous container, which means that is accepts any struct. Structs in this store are identifier by their TypeId.

Implementations§

Source§

impl Context

Source

pub fn empty() -> Context

Source

pub fn with_variables(variables: HashMap<String, String>) -> Context

Source

pub fn set_variable(&mut self, name: &str, value: &str)

Source

pub fn get_variable(&self, name: &str) -> Option<&String>

Source

pub fn save_state<T: Any>(&mut self, state: T)

Source

pub fn get_state<T: Any>(&self) -> Option<&T>

Auto Trait Implementations§

§

impl Freeze for Context

§

impl !RefUnwindSafe for Context

§

impl !Send for Context

§

impl !Sync for Context

§

impl Unpin for Context

§

impl !UnwindSafe for Context

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.