BinaryOperator

Enum BinaryOperator 

Source
pub enum BinaryOperator {
Show 16 variants And, Or, Equal, NotEqual, LowerThan, LowerOrEqualThan, GreaterThan, GreaterOrEqualThan, Plus, Minus, Asterisk, Slash, DoubleSlash, Percent, Caret, Concat,
}
Expand description

Represents binary operators used in a binary expression.

Variants§

§

And

Logical AND operator (and)

§

Or

Logical OR operator (or)

§

Equal

Equality operator (==)

§

NotEqual

Inequality operator (~=)

§

LowerThan

Less than operator (<)

§

LowerOrEqualThan

Less than or equal operator (<=)

§

GreaterThan

Greater than operator (>)

§

GreaterOrEqualThan

Greater than or equal operator (>=)

§

Plus

Addition operator (+)

§

Minus

Subtraction operator (-)

§

Asterisk

Multiplication operator (*)

§

Slash

Division operator (/)

§

DoubleSlash

Integer division operator (//)

§

Percent

Modulo operator (%)

§

Caret

Exponentiation operator (^)

§

Concat

String concatenation operator (..)

Implementations§

Source§

impl BinaryOperator

Source

pub fn precedes(&self, other: Self) -> bool

Checks if this operator has higher precedence than another operator.

Source

pub fn precedes_unary_expression(&self) -> bool

Checks if this operator has higher precedence than unary expressions.

Currently only the exponentiation operator (^) has this property.

Source

pub fn is_left_associative(&self) -> bool

Determines if this operator is left associative.

Left associative operators like + evaluate expressions from left to right: a + b + c is evaluated as (a + b) + c.

Source

pub fn is_right_associative(&self) -> bool

Determines if this operator is right associative.

Right associative operators like ^ evaluate expressions from right to left: a ^ b ^ c is evaluated as a ^ (b ^ c).

Source

pub fn left_needs_parentheses(&self, left: &Expression) -> bool

Determines if the left operand needs parentheses when generating code.

Source

pub fn right_needs_parentheses(&self, right: &Expression) -> bool

Determines if the right operand needs parentheses when generating code.

Source

pub fn to_str(&self) -> &'static str

Returns the string representation of this operator.

Trait Implementations§

Source§

impl Clone for BinaryOperator

Source§

fn clone(&self) -> BinaryOperator

Returns a duplicate 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 BinaryOperator

Source§

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

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

impl PartialEq for BinaryOperator

Source§

fn eq(&self, other: &BinaryOperator) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for BinaryOperator

Source§

impl Eq for BinaryOperator

Source§

impl StructuralPartialEq for BinaryOperator

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

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<I, T> ExtractContext<I, ()> for T

Source§

fn extract_context(self, _original_input: I)

Given the context attached to a nom error, and given the original input to the nom parser, extract more the useful context information. 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<I> RecreateContext<I> for I

Source§

fn recreate_context(_original_input: I, tail: I) -> I

Given the original input, as well as the context reported by nom, recreate a context in the original string where the error occurred. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

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

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.