Enum glsl::syntax::Expr[][src]

pub enum Expr {
Show variants Variable(Identifier), IntConst(i32), UIntConst(u32), BoolConst(bool), FloatConst(f32), DoubleConst(f64), Unary(UnaryOpBox<Expr>), Binary(BinaryOpBox<Expr>, Box<Expr>), Ternary(Box<Expr>, Box<Expr>, Box<Expr>), Assignment(Box<Expr>, AssignmentOpBox<Expr>), Bracket(Box<Expr>, ArraySpecifier), FunCall(FunIdentifierVec<Expr>), Dot(Box<Expr>, Identifier), PostInc(Box<Expr>), PostDec(Box<Expr>), Comma(Box<Expr>, Box<Expr>),
}

The most general form of an expression. As you can see if you read the variant list, in GLSL, an assignment is an expression. This is a bit silly but think of an assignment as a statement first then an expression which evaluates to what the statement “returns”.

An expression is either an assignment or a list (comma) of assignments.

Variants

Variable(Identifier)

A variable expression, using an identifier.

IntConst(i32)

Integral constant expression.

UIntConst(u32)

Unsigned integral constant expression.

BoolConst(bool)

Boolean constant expression.

FloatConst(f32)

Single precision floating expression.

DoubleConst(f64)

Double precision floating expression.

Unary(UnaryOpBox<Expr>)

A unary expression, gathering a single expression and a unary operator.

Binary(BinaryOpBox<Expr>, Box<Expr>)

A binary expression, gathering two expressions and a binary operator.

Ternary(Box<Expr>, Box<Expr>, Box<Expr>)

A ternary conditional expression, gathering three expressions.

Assignment(Box<Expr>, AssignmentOpBox<Expr>)

An assignment is also an expression. Gathers an expression that defines what to assign to, an assignment operator and the value to associate with.

Bracket(Box<Expr>, ArraySpecifier)

Add an array specifier to an expression.

FunCall(FunIdentifierVec<Expr>)

A functional call. It has a function identifier and a list of expressions (arguments).

Dot(Box<Expr>, Identifier)

An expression associated with a field selection (struct).

PostInc(Box<Expr>)

Post-incrementation of an expression.

PostDec(Box<Expr>)

Post-decrementation of an expression.

Comma(Box<Expr>, Box<Expr>)

An expression that contains several, separated with comma.

Trait Implementations

impl Clone for Expr[src]

impl Debug for Expr[src]

impl From<Expr> for Initializer[src]

impl From<Expr> for Condition[src]

impl From<bool> for Expr[src]

impl From<f32> for Expr[src]

impl From<f64> for Expr[src]

impl From<i32> for Expr[src]

impl From<u32> for Expr[src]

impl Host for Expr[src]

impl Parse for Expr[src]

impl PartialEq<Expr> for Expr[src]

impl StructuralPartialEq for Expr[src]

Auto Trait Implementations

impl RefUnwindSafe for Expr

impl Send for Expr

impl Sync for Expr

impl Unpin for Expr

impl UnwindSafe for Expr

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.