pub struct ModuleDescriptor { /* private fields */ }Expand description
Describes a MASM module surface, including its path, version, exports, and declared submodules.
Implementations§
Source§impl ModuleDescriptor
impl ModuleDescriptor
Sourcepub fn new(path: Arc<Path>, version: Option<Version>) -> Self
pub fn new(path: Arc<Path>, version: Option<Version>) -> Self
Returns a new ModuleDescriptor instantiated by library path and optional semantic
version.
The semantic version is optional, as currently the assembler allows assembling artifacts without providing one.
Sourcepub fn set_version(&mut self, version: Version)
pub fn set_version(&mut self, version: Version)
Specify the version of this module
Sourcepub fn add_procedure(
&mut self,
name: ProcedureName,
digest: Word,
signature: Option<Arc<FunctionType>>,
attributes: AttributeSet,
)
pub fn add_procedure( &mut self, name: ProcedureName, digest: Word, signature: Option<Arc<FunctionType>>, attributes: AttributeSet, )
Adds a procedure to the module.
Sourcepub fn add_procedure_with_provenance(
&mut self,
name: ProcedureName,
digest: Word,
signature: Option<Arc<FunctionType>>,
attributes: AttributeSet,
source_root_id: Option<MastNodeId>,
source_debug_root_id: Option<u32>,
source_library_commitment: Option<Word>,
)
pub fn add_procedure_with_provenance( &mut self, name: ProcedureName, digest: Word, signature: Option<Arc<FunctionType>>, attributes: AttributeSet, source_root_id: Option<MastNodeId>, source_debug_root_id: Option<u32>, source_library_commitment: Option<Word>, )
Adds a procedure to the module with optional source provenance.
Sourcepub fn add_constant(&mut self, name: Ident, value: ConstantValue)
pub fn add_constant(&mut self, name: Ident, value: ConstantValue)
Adds a constant to the module.
Sourcepub fn add_submodule(&mut self, submodule: SubmoduleDecl)
pub fn add_submodule(&mut self, submodule: SubmoduleDecl)
Adds a submodule declaration to the module surface.
Sourcepub fn num_procedures(&self) -> usize
pub fn num_procedures(&self) -> usize
Returns the number of procedures in the module.
Sourcepub fn get_item_by_index(&self, index: ItemIndex) -> Option<&ItemInfo>
pub fn get_item_by_index(&self, index: ItemIndex) -> Option<&ItemInfo>
Returns the ItemInfo of the item at the provided index, if any.
Sourcepub fn get_item_index_by_name(&self, name: &str) -> Option<ItemIndex>
pub fn get_item_index_by_name(&self, name: &str) -> Option<ItemIndex>
Returns the ItemIndex of an item by its local name
Sourcepub fn get_procedure_by_name(&self, name: &str) -> Option<&ProcedureInfo>
pub fn get_procedure_by_name(&self, name: &str) -> Option<&ProcedureInfo>
Returns the procedure info for the procedure with the provided name, if any.
Sourcepub fn get_procedure_digest_by_name(&self, name: &str) -> Option<Word>
pub fn get_procedure_digest_by_name(&self, name: &str) -> Option<Word>
Returns the digest of the procedure with the provided name, if any.
Sourcepub fn items(&self) -> impl ExactSizeIterator<Item = (ItemIndex, &ItemInfo)>
pub fn items(&self) -> impl ExactSizeIterator<Item = (ItemIndex, &ItemInfo)>
Returns an iterator over the items in the module with their corresponding item index in the module.
Sourcepub fn submodules(&self) -> &[SubmoduleDecl]
pub fn submodules(&self) -> &[SubmoduleDecl]
Returns the declared submodules in this module surface.
Sourcepub fn procedures(&self) -> impl Iterator<Item = (ItemIndex, &ProcedureInfo)>
pub fn procedures(&self) -> impl Iterator<Item = (ItemIndex, &ProcedureInfo)>
Returns an iterator over the procedure infos in the module with their corresponding item index in the module.
Sourcepub fn procedure_digests(&self) -> impl Iterator<Item = Word> + '_
pub fn procedure_digests(&self) -> impl Iterator<Item = Word> + '_
Returns an iterator over the MAST roots of procedures defined in this module.
Sourcepub fn constants(&self) -> impl Iterator<Item = (ItemIndex, &ConstantInfo)>
pub fn constants(&self) -> impl Iterator<Item = (ItemIndex, &ConstantInfo)>
Access the constants associated with this module
Trait Implementations§
Source§impl Clone for ModuleDescriptor
impl Clone for ModuleDescriptor
Source§fn clone(&self) -> ModuleDescriptor
fn clone(&self) -> ModuleDescriptor
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ModuleDescriptor
impl Debug for ModuleDescriptor
impl Eq for ModuleDescriptor
Source§impl Index<ItemIndex> for ModuleDescriptor
impl Index<ItemIndex> for ModuleDescriptor
Source§impl PartialEq for ModuleDescriptor
impl PartialEq for ModuleDescriptor
impl StructuralPartialEq for ModuleDescriptor
Source§impl SymbolTable for &ModuleDescriptor
impl SymbolTable for &ModuleDescriptor
Source§type SymbolIter = IntoIter<LocalSymbol>
type SymbolIter = IntoIter<LocalSymbol>
Source§fn symbols(&self, _source_manager: Arc<dyn SourceManager>) -> Self::SymbolIter
fn symbols(&self, _source_manager: Arc<dyn SourceManager>) -> Self::SymbolIter
Source§fn checked_symbols(
&self,
source_manager: Arc<dyn SourceManager>,
) -> Result<Self::SymbolIter, SymbolResolutionError>
fn checked_symbols( &self, source_manager: Arc<dyn SourceManager>, ) -> Result<Self::SymbolIter, SymbolResolutionError>
Auto Trait Implementations§
impl Freeze for ModuleDescriptor
impl RefUnwindSafe for ModuleDescriptor
impl Send for ModuleDescriptor
impl Sync for ModuleDescriptor
impl Unpin for ModuleDescriptor
impl UnsafeUnpin for ModuleDescriptor
impl UnwindSafe for ModuleDescriptor
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more