Enum naga::Statement [−][src]
pub enum Statement { Emit(Range<Expression>), Block(Block), If { condition: Handle<Expression>, accept: Block, reject: Block, }, Switch { selector: Handle<Expression>, cases: Vec<SwitchCase>, default: Block, }, Loop { body: Block, continuing: Block, }, Break, Continue, Return { value: Option<Handle<Expression>>, }, Kill, Store { pointer: Handle<Expression>, value: Handle<Expression>, }, ImageStore { image: Handle<Expression>, coordinate: Handle<Expression>, array_index: Option<Handle<Expression>>, value: Handle<Expression>, }, Call { function: Handle<Function>, arguments: Vec<Handle<Expression>>, result: Option<Handle<Expression>>, }, }
Expand description
Instructions which make up an executable block.
Variants
Emit(Range<Expression>)
Emit a range of expressions, visible to all statements that follow in this block.
Block(Block)
A block containing more statements, to be executed sequentially.
Conditionally executes one of two blocks, based on the value of the condition.
Show fields
Fields of If
Conditionally executes one of multiple blocks, based on the value of the selector.
Show fields
Fields of Switch
Executes a block repeatedly.
Exits the loop.
Skips execution to the next iteration of the loop.
Returns from the function (possibly with a value).
Show fields
Fields of Return
value: Option<Handle<Expression>>
Aborts the current shader execution.
Stores a value at an address.
This statement is a barrier for any operations on the
Expression::LocalVariable
or Expression::GlobalVariable
that is the destination of an access chain, started
from the pointer
.
Show fields
Fields of Store
pointer: Handle<Expression>
value: Handle<Expression>
Stores a value to an image.
Image has to point into a global variable of type TypeInner::Image
.
This statement is a barrier for any operations on the corresponding
Expression::GlobalVariable
for this image.
Show fields
Fields of ImageStore
image: Handle<Expression>
coordinate: Handle<Expression>
array_index: Option<Handle<Expression>>
value: Handle<Expression>
Calls a function.
If the result
is Some
, the corresponding expression has to be
Expression::Call
, and this statement serves as a barrier for any
operations on that expression.
Show fields
Fields of Call
Trait Implementations
impl<'de> Deserialize<'de> for Statement
[src]
impl<'de> Deserialize<'de> for Statement
[src]fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations
impl RefUnwindSafe for Statement
impl Send for Statement
impl Sync for Statement
impl Unpin for Statement
impl UnwindSafe for Statement
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,