Struct rspirv::dr::Module [−][src]
pub struct Module {Show 13 fields
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 debug_string_source: Vec<Instruction>,
pub debug_names: Vec<Instruction>,
pub debug_module_processed: Vec<Instruction>,
pub annotations: Vec<Instruction>,
pub types_global_values: Vec<Instruction>,
pub functions: Vec<Function>,
}
Expand description
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.
debug_string_source: Vec<Instruction>
Debug subsection: All OpString, OpSourceExtension, OpSource, and OpSourceContinued.
debug_names: Vec<Instruction>
Debug subsection: All OpName and all OpMemberName.
debug_module_processed: Vec<Instruction>
Debug subsection: All OpModuleProcessed 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.
Implementations
Returns an iterator over all global instructions.
Returns a mut iterator over all global instructions.
Returns a iterator over all instructions.
Returns a mut iterator over all instructions.
Trait Implementations
Assembles the current object into the result
vector, reducing the need for lots of allocations
Disassembles this module and returns the disassembly text.
This method will try to link information together to be wise. E.g., If the extended instruction set is recognized, the symbolic opcode for instructions in it will be shown.
Auto Trait Implementations
impl RefUnwindSafe for Module
impl UnwindSafe for Module
Blanket Implementations
Mutably borrows from an owned value. Read more