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

pub enum Expr {
    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).

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 Parse for Expr[src]

impl Host for Expr[src]

impl Clone for Expr[src]

impl PartialEq<Expr> for Expr[src]

impl From<Expr> for Initializer[src]

impl From<i32> for Expr[src]

impl From<u32> for Expr[src]

impl From<bool> for Expr[src]

impl From<f32> for Expr[src]

impl From<f64> for Expr[src]

impl From<Expr> for Condition[src]

impl Debug for Expr[src]

Auto Trait Implementations

impl Send for Expr

impl Unpin for Expr

impl Sync for Expr

impl UnwindSafe for Expr

impl RefUnwindSafe for Expr

Blanket Implementations

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

type Owned = T

The resulting type after obtaining ownership.

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

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

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.

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

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

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