pub struct Procedure { /* private fields */ }
Expand description
Represents a concrete procedure definition in Miden Assembly syntax
Implementations§
Source§impl Procedure
Construction
impl Procedure
Construction
Sourcepub fn new(
span: SourceSpan,
visibility: Visibility,
name: ProcedureName,
num_locals: u16,
body: Block,
) -> Self
pub fn new( span: SourceSpan, visibility: Visibility, name: ProcedureName, num_locals: u16, body: Block, ) -> Self
Creates a new Procedure from the given source span, visibility, name, number of locals, and code block.
Sourcepub fn with_signature(self, ty: FunctionType) -> Self
pub fn with_signature(self, ty: FunctionType) -> Self
Specify the type signature of this procedure
Sourcepub fn with_docs(self, docs: Option<Span<String>>) -> Self
pub fn with_docs(self, docs: Option<Span<String>>) -> Self
Adds documentation to this procedure definition
Sourcepub fn with_attributes<I>(self, attrs: I) -> Selfwhere
I: IntoIterator<Item = Attribute>,
pub fn with_attributes<I>(self, attrs: I) -> Selfwhere
I: IntoIterator<Item = Attribute>,
Adds attributes to this procedure definition
Sourcepub fn set_visibility(&mut self, visibility: Visibility)
pub fn set_visibility(&mut self, visibility: Visibility)
Override the visibility of this procedure.
Sourcepub fn set_signature(&mut self, signature: FunctionType)
pub fn set_signature(&mut self, signature: FunctionType)
Override the type signature of this procedure.
Source§impl Procedure
Metadata
impl Procedure
Metadata
Sourcepub fn name(&self) -> &ProcedureName
pub fn name(&self) -> &ProcedureName
Returns the name of this procedure within its containing module.
Sourcepub fn visibility(&self) -> Visibility
pub fn visibility(&self) -> Visibility
Returns the visibility of this procedure
Sourcepub fn signature(&self) -> Option<&FunctionType>
pub fn signature(&self) -> Option<&FunctionType>
Get the type signature of this procedure, if known
Sourcepub fn signature_mut(&mut self) -> Option<&mut FunctionType>
pub fn signature_mut(&mut self) -> Option<&mut FunctionType>
Get the type signature of this procedure mutably, if known
Sourcepub fn num_locals(&self) -> u16
pub fn num_locals(&self) -> u16
Returns the number of locals allocated by this procedure.
Sourcepub fn is_entrypoint(&self) -> bool
pub fn is_entrypoint(&self) -> bool
Returns true if this procedure corresponds to the begin
..end
block of an executable
module.
Sourcepub fn docs(&self) -> Option<Span<&str>>
pub fn docs(&self) -> Option<Span<&str>>
Returns the documentation for this procedure, if present.
Sourcepub fn attributes(&self) -> &AttributeSet
pub fn attributes(&self) -> &AttributeSet
Get the attributes attached to this procedure
Sourcepub fn attributes_mut(&mut self) -> &mut AttributeSet
pub fn attributes_mut(&mut self) -> &mut AttributeSet
Get the attributes attached to this procedure, mutably
Sourcepub fn has_attribute(&self, name: impl AsRef<str>) -> bool
pub fn has_attribute(&self, name: impl AsRef<str>) -> bool
Returns true if this procedure has an attribute named name
Sourcepub fn get_attribute(&self, name: impl AsRef<str>) -> Option<&Attribute>
pub fn get_attribute(&self, name: impl AsRef<str>) -> Option<&Attribute>
Returns the attribute named name
, if present
Sourcepub fn body(&self) -> &Block
pub fn body(&self) -> &Block
Returns a reference to the Block containing the body of this procedure.
Sourcepub fn body_mut(&mut self) -> &mut Block
pub fn body_mut(&mut self) -> &mut Block
Returns a mutable reference to the Block containing the body of this procedure.
Sourcepub fn iter(&self) -> Iter<'_, Op>
pub fn iter(&self) -> Iter<'_, Op>
Returns an iterator over the operations of the top-level Block of this procedure.
Sourcepub fn invoked<'a, 'b: 'a>(&'b self) -> impl Iterator<Item = &'a Invoke> + 'a
pub fn invoked<'a, 'b: 'a>(&'b self) -> impl Iterator<Item = &'a Invoke> + 'a
Returns an iterator over the set of invocation targets of this procedure, i.e. the callees of any call instructions in the body of this procedure.
Sourcepub fn extend_invoked<I>(&mut self, iter: I)where
I: IntoIterator<Item = Invoke>,
pub fn extend_invoked<I>(&mut self, iter: I)where
I: IntoIterator<Item = Invoke>,
Extends the set of procedures known to be invoked by this procedure.
This is for internal use only, and is called during semantic analysis once we’ve identified the set of invoked procedures for a given definition.
Trait Implementations§
Source§impl PrettyPrint for Procedure
impl PrettyPrint for Procedure
Source§fn to_pretty_string(&self) -> String
fn to_pretty_string(&self) -> String
Source§fn pretty_print(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn pretty_print(&self, f: &mut Formatter<'_>) -> Result<(), Error>
impl Eq for Procedure
Auto Trait Implementations§
impl Freeze for Procedure
impl RefUnwindSafe for Procedure
impl Send for Procedure
impl Sync for Procedure
impl Unpin for Procedure
impl UnwindSafe for Procedure
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<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