[−][src]Enum naga::Expression
pub enum Expression { Access { base: Handle<Expression>, index: Handle<Expression>, }, AccessIndex { base: Handle<Expression>, index: u32, }, Constant(Handle<Constant>), Compose { ty: Handle<Type>, components: Vec<Handle<Expression>>, }, FunctionParameter(u32), GlobalVariable(Handle<GlobalVariable>), LocalVariable(Handle<LocalVariable>), Load { pointer: Handle<Expression>, }, ImageSample { image: Handle<Expression>, sampler: Handle<Expression>, coordinate: Handle<Expression>, depth_ref: Option<Handle<Expression>>, }, Unary { op: UnaryOperator, expr: Handle<Expression>, }, Binary { op: BinaryOperator, left: Handle<Expression>, right: Handle<Expression>, }, Intrinsic { fun: IntrinsicFunction, argument: Handle<Expression>, }, DotProduct(Handle<Expression>, Handle<Expression>), CrossProduct(Handle<Expression>, Handle<Expression>), Derivative { axis: DerivativeAxis, expr: Handle<Expression>, }, Call { origin: FunctionOrigin, arguments: Vec<Handle<Expression>>, }, }
An expression that can be evaluated to obtain a value.
Variants
Array access with a computed index.
Fields of Access
base: Handle<Expression>
index: Handle<Expression>
Array access with a known index.
Fields of AccessIndex
base: Handle<Expression>
index: u32
Constant value.
Composite expression.
Fields of Compose
ty: Handle<Type>
components: Vec<Handle<Expression>>
FunctionParameter(u32)
Reference a function parameter, by its index.
GlobalVariable(Handle<GlobalVariable>)
Reference a global variable.
LocalVariable(Handle<LocalVariable>)
Reference a local variable.
Load a value indirectly.
Fields of Load
pointer: Handle<Expression>
Sample a point from an image.
Fields of ImageSample
image: Handle<Expression>
sampler: Handle<Expression>
coordinate: Handle<Expression>
depth_ref: Option<Handle<Expression>>
Apply an unary operator.
Fields of Unary
op: UnaryOperator
expr: Handle<Expression>
Apply a binary operator.
Fields of Binary
Call an intrinsic function.
Fields of Intrinsic
fun: IntrinsicFunction
argument: Handle<Expression>
DotProduct(Handle<Expression>, Handle<Expression>)
Dot product between two vectors.
CrossProduct(Handle<Expression>, Handle<Expression>)
Cross product between two vectors.
Compute the derivative on an axis.
Fields of Derivative
axis: DerivativeAxis
expr: Handle<Expression>
Call another function.
Fields of Call
origin: FunctionOrigin
arguments: Vec<Handle<Expression>>
Trait Implementations
impl Clone for Expression
[src][+]
impl Debug for Expression
[src][+]
Auto Trait Implementations
impl RefUnwindSafe for Expression
impl Send for Expression
impl Sync for Expression
impl Unpin for Expression
impl UnwindSafe for Expression
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src][+]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> From<T> for T
[src][+]
impl<T, U> Into<U> for T where
U: From<T>,
[src][+]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src][+]
T: Clone,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,