Struct Isolate

Source
pub struct Isolate<'arena> { /* private fields */ }
Expand description

Isolate is a component that encapsulates an isolated environment for executing expressions.

Rerunning the Isolate allows for efficient memory reuse through an arena allocator. The arena allocator optimizes memory management by reusing memory blocks for subsequent evaluations, contributing to improved performance and resource utilization in scenarios where the Isolate is reused multiple times.

Implementations§

Source§

impl<'a> Isolate<'a>

Source

pub fn new() -> Self

Source

pub fn with_environment(variable: Variable) -> Self

Source

pub fn set_environment(&mut self, variable: Variable)

Source

pub fn update_environment<F>(&mut self, updater: F)
where F: FnMut(Option<&mut Variable>),

Source

pub fn set_reference(&mut self, reference: &'a str) -> Result<(), IsolateError>

Source

pub fn get_reference(&self, reference: &str) -> Option<Variable>

Source

pub fn clear_references(&mut self)

Source

pub fn compile_standard( &mut self, source: &'a str, ) -> Result<Expression<Standard>, IsolateError>

Source

pub fn run_standard( &mut self, source: &'a str, ) -> Result<Variable, IsolateError>

Source

pub fn compile_unary( &mut self, source: &'a str, ) -> Result<Expression<Unary>, IsolateError>

Source

pub fn run_unary(&mut self, source: &'a str) -> Result<bool, IsolateError>

Trait Implementations§

Source§

impl<'arena> Debug for Isolate<'arena>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'arena> Freeze for Isolate<'arena>

§

impl<'arena> !RefUnwindSafe for Isolate<'arena>

§

impl<'arena> !Send for Isolate<'arena>

§

impl<'arena> !Sync for Isolate<'arena>

§

impl<'arena> Unpin for Isolate<'arena>

§

impl<'arena> !UnwindSafe for Isolate<'arena>

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.