Struct rspirv::mr::Module [−][src]
pub struct Module { pub header: Option<ModuleHeader>, pub capabilities: Vec<Instruction>, pub extensions: Vec<Instruction>, pub ext_inst_imports: Vec<Instruction>, pub memory_model: Option<Instruction>, pub entry_points: Vec<Instruction>, pub execution_modes: Vec<Instruction>, pub debugs: Vec<Instruction>, pub annotations: Vec<Instruction>, pub types_global_values: Vec<Instruction>, pub functions: Vec<Function>, }
Data representation of a SPIR-V module.
Most of the fields are just vectors of Instruction
s, but some fields
store values decomposed from Instruction
s for better investigation.
The order of its fields basically reveal the requirements in the Logical Layout of a Module of the SPIR-V of the SPIR-V specification.
Fields
header: Option<ModuleHeader>
The module header.
capabilities: Vec<Instruction>
All OpCapability instructions.
extensions: Vec<Instruction>
All OpExtension instructions.
ext_inst_imports: Vec<Instruction>
All OpExtInstImport instructions.
memory_model: Option<Instruction>
The OpMemoryModel instruction.
Although it is required by the specification to appear exactly once per module, we keep it optional here to allow flexibility.
entry_points: Vec<Instruction>
All entry point declarations, using OpEntryPoint.
execution_modes: Vec<Instruction>
All execution mode declarations, using OpExecutionMode.
debugs: Vec<Instruction>
All non-location debug instructions.
annotations: Vec<Instruction>
All annotation instructions.
types_global_values: Vec<Instruction>
All types, constants, and global variables.
As per the specification, they have to be bundled together because they can depend on one another.
functions: Vec<Function>
All functions.
Methods
impl Module
[src]
impl Module
pub fn new() -> Module
[src]
pub fn new() -> Module
Creates a new empty Module
instance.
ⓘImportant traits for InstIter<'i>pub fn global_inst_iter(&self) -> InstIter
[src]
pub fn global_inst_iter(&self) -> InstIter
Returns an iterator over all global instructions.
This method internally creates a vector of references to all global instructions, therefore it has some overheads.
Trait Implementations
impl Assemble for Module
[src]
impl Assemble for Module
impl Disassemble for Module
[src]
impl Disassemble for Module
fn disassemble(&self) -> String
[src]
fn disassemble(&self) -> String
Disassembles the current object and returns the assembly code.
impl Debug for Module
[src]
impl Debug for Module
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl Default for Module
[src]
impl Default for Module