pub struct Expression<T> {
    pub weights: Weights,
    pub kind: T,
}
Expand description

An expression is a base construct of Geo-AID. Contains a cache, saved weights and the expression kind itself.

Fields§

§weights: Weights

Saved weights

§kind: T

Expression kind.

Implementations§

source§

impl<T: Evaluate + Kind> Expression<T>
where T::Output: From<Value> + Into<Value> + Clone,

source

pub fn new(expr: T, weight: FastFloat) -> Self

source

pub fn get_address(self: &Arc<Self>) -> usize

Gets the expressions address.

source

pub fn evaluate(self: &Arc<Self>, args: &EvaluationArgs<'_>) -> T::Output

Evaluates the expression.

Errors

Any errors related to failure when evaluating.

source

pub fn collect(self: &Arc<Self>, exprs: &mut Vec<usize>)

Collects expressions that should be cached.

source

pub fn is_trivial(&self) -> bool

Trivial expressions are ones that don’t require any calculations being made. Trivial expressions should not be cached, as it is much faster to evaluate them than to get their caches.

Trait Implementations§

source§

impl<T: Clone> Clone for Expression<T>

source§

fn clone(&self) -> Expression<T>

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<T: Debug> Debug for Expression<T>

source§

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

Formats the value using the given formatter. Read more
source§

impl<T> Serialize for Expression<T>
where T: Serialize,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<T> RefUnwindSafe for Expression<T>
where T: RefUnwindSafe,

§

impl<T> Send for Expression<T>
where T: Send,

§

impl<T> Sync for Expression<T>
where T: Sync,

§

impl<T> Unpin for Expression<T>
where T: Unpin,

§

impl<T> UnwindSafe for Expression<T>
where T: UnwindSafe,

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

source§

fn clone_with_node(&mut self) -> T

source§

fn clone_without_node(&self) -> T

source§

impl<T> Convert for T

source§

fn convert<U>(self, context: &CompileContext) -> Expr<U>
where U: ConvertFrom<T>,

Errors Read more
source§

fn can_convert<U>(&self) -> bool
where U: ConvertFrom<T>,

Errors 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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V