pub enum Additive {
Add(Box<Additive>, Multiplicative),
Subtract(Box<Additive>, Multiplicative),
Primary(Box<Primary>),
}Expand description
Additive expression AST node.
Represents + / - over multiplicative terms or a flattened primary node.
Add: left + right.Subtract: left - right.Primary: wrapped lower-precedence expression.
Variants§
Add(Box<Additive>, Multiplicative)
Subtract(Box<Additive>, Multiplicative)
Primary(Box<Primary>)
Primary flattened AST optimization
Implementations§
Trait Implementations§
Source§impl ExpressionLike for Additive
impl ExpressionLike for Additive
Source§fn to_formula(&self) -> String
fn to_formula(&self) -> String
Return the formula-string representation (round-trippable by the parser).
Source§fn evaluate(&self, context: &mut dyn ContextLike) -> Result<Arc<Value>>
fn evaluate(&self, context: &mut dyn ContextLike) -> Result<Arc<Value>>
Evaluate this expression with the provided
ContextLike, returning a Value or error.Source§impl WriterLike for Additive
impl WriterLike for Additive
Source§fn to_stringized(&self) -> String
fn to_stringized(&self) -> String
Return a string representation (raw unsafe output).
Source§fn to_sanitized(&self) -> String
fn to_sanitized(&self) -> String
Return a sanitized string representation (escaped for safe output).
Source§fn to_expressionized(&self) -> String
fn to_expressionized(&self) -> String
Return a sanitized string representation (escaped for safe output).
impl StructuralPartialEq for Additive
Auto Trait Implementations§
impl Freeze for Additive
impl RefUnwindSafe for Additive
impl Send for Additive
impl Sync for Additive
impl Unpin for Additive
impl UnwindSafe for Additive
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,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.