pub enum Expression {
    Boolean(BoolExpression),
    Real(RealExpression),
    String(StringExpression),
}
Expand description

Top-level parseable calculation.

Variants§

Implementations§

source§

impl Expression

source

pub fn unwrap_real(self) -> RealExpression

Assume this expression is real-valued.

source

pub fn unwrap_string(self) -> StringExpression

Assume this expression is string-valued.

source

pub fn unwrap_bool(self) -> BoolExpression

Assume this expression is boolean-valued.

source

pub fn parse_real_variable_names( input: &str ) -> Result<HashSet<String>, ParseError>

source

pub fn parse_string_variable_names( input: &str ) -> Result<HashSet<String>, ParseError>

source

pub fn parse( input: &str, binding_map: impl Fn(&str) -> BindingId ) -> Result<Self, ParseError>

Parse the expression from input.

binding_map determines which variable name maps to each data binding. As variable names are encountered during parsing, they are replaced by BindingIds in the Expression syntax tree. This allows the Expression to be efficiently reused with many different data bindings.

Trait Implementations§

source§

impl Clone for Expression

source§

fn clone(&self) -> Expression

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Expression

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

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>,

§

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.