pub struct Spec {
pub magic: u32,
pub well_known: WellKnown,
pub instructions: NamedIdxMap<Opcode, InstructionDef, KhrSegmented>,
pub operand_kinds: NamedIdxMap<OperandKind, OperandKindDef, Flat>,
operand_names: IndexSet<&'static str, BuildHasherDefault<FxHasher>>,
ext_inst_sets: BTreeMap<&'static str, (OnceLock<ExtInstSetDesc>, Box<dyn Fn() -> ExtInstSetDesc + Send + Sync>)>,
}
Fields§
§magic: u32
§well_known: WellKnown
Pre-cached IDs for “well-known” names.
instructions: NamedIdxMap<Opcode, InstructionDef, KhrSegmented>
§operand_kinds: NamedIdxMap<OperandKind, OperandKindDef, Flat>
§operand_names: IndexSet<&'static str, BuildHasherDefault<FxHasher>>
§ext_inst_sets: BTreeMap<&'static str, (OnceLock<ExtInstSetDesc>, Box<dyn Fn() -> ExtInstSetDesc + Send + Sync>)>
Implementations§
source§impl Spec
impl Spec
sourcepub fn get() -> &'static Spec
pub fn get() -> &'static Spec
Return a lazily-loaded Spec
(only does significant work for the first call).
sourcepub fn get_ext_inst_set_by_lowercase_name(
&self,
lowercase_ext_inst_set_name: &str
) -> Option<&ExtInstSetDesc>
pub fn get_ext_inst_set_by_lowercase_name( &self, lowercase_ext_inst_set_name: &str ) -> Option<&ExtInstSetDesc>
Return a lazily-parsed ExtInstSetDesc
, if a known one exists for this
OpExtInstImport
name (required to be lowercase, due to Khronos’ choice
of case insensitivity, but not checked by this function).
sourcefn from_raw(raw_core_grammar: CoreGrammar<'static>) -> Self
fn from_raw(raw_core_grammar: CoreGrammar<'static>) -> Self
Auto Trait Implementations§
impl !RefUnwindSafe for Spec
impl Send for Spec
impl Sync for Spec
impl Unpin for Spec
impl !UnwindSafe for Spec
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more