pub enum MastNode {
Block(BasicBlockNode),
Join(JoinNode),
Split(SplitNode),
Loop(LoopNode),
Call(CallNode),
Dyn(DynNode),
External(ExternalNode),
}
Variants§
Block(BasicBlockNode)
Join(JoinNode)
Split(SplitNode)
Loop(LoopNode)
Call(CallNode)
Dyn(DynNode)
External(ExternalNode)
Implementations§
Source§impl MastNode
Constructors
impl MastNode
Constructors
pub fn new_basic_block( operations: Vec<Operation>, decorators: Option<DecoratorList>, ) -> Result<Self, MastForestError>
pub fn new_join( left_child: MastNodeId, right_child: MastNodeId, mast_forest: &MastForest, ) -> Result<Self, MastForestError>
pub fn new_split( if_branch: MastNodeId, else_branch: MastNodeId, mast_forest: &MastForest, ) -> Result<Self, MastForestError>
pub fn new_loop( body: MastNodeId, mast_forest: &MastForest, ) -> Result<Self, MastForestError>
pub fn new_call( callee: MastNodeId, mast_forest: &MastForest, ) -> Result<Self, MastForestError>
pub fn new_syscall( callee: MastNodeId, mast_forest: &MastForest, ) -> Result<Self, MastForestError>
pub fn new_dyn() -> Self
pub fn new_dyncall() -> Self
pub fn new_external(mast_root: Word) -> Self
Source§impl MastNode
Public accessors
impl MastNode
Public accessors
Sourcepub fn is_external(&self) -> bool
pub fn is_external(&self) -> bool
Returns true if this node is an external node.
Sourcepub fn is_basic_block(&self) -> bool
pub fn is_basic_block(&self) -> bool
Returns true if this node is a basic block.
Sourcepub fn get_basic_block(&self) -> Option<&BasicBlockNode>
pub fn get_basic_block(&self) -> Option<&BasicBlockNode>
Returns the inner basic block node if the MastNode
wraps a BasicBlockNode
; None
otherwise.
Sourcepub fn remap_children(&self, remapping: &Remapping) -> Self
pub fn remap_children(&self, remapping: &Remapping) -> Self
Remap the node children to their new positions indicated by the given Remapping
.
Sourcepub fn has_children(&self) -> bool
pub fn has_children(&self) -> bool
Returns true if the this node has children.
Sourcepub fn append_children_to(&self, target: &mut Vec<MastNodeId>)
pub fn append_children_to(&self, target: &mut Vec<MastNodeId>)
Appends the NodeIds of the children of this node, if any, to the vector.
pub fn to_pretty_print<'a>( &'a self, mast_forest: &'a MastForest, ) -> impl PrettyPrint + 'a
pub fn domain(&self) -> Felt
pub fn digest(&self) -> Word
pub fn to_display<'a>( &'a self, mast_forest: &'a MastForest, ) -> impl Display + 'a
Sourcepub fn before_enter(&self) -> &[DecoratorId]
pub fn before_enter(&self) -> &[DecoratorId]
Returns the decorators to be executed before this node is executed.
Sourcepub fn after_exit(&self) -> &[DecoratorId]
pub fn after_exit(&self) -> &[DecoratorId]
Returns the decorators to be executed after this node is executed.
Source§impl MastNode
Mutators
impl MastNode
Mutators
Sourcepub fn append_before_enter(&mut self, decorator_ids: &[DecoratorId])
pub fn append_before_enter(&mut self, decorator_ids: &[DecoratorId])
Sets the list of decorators to be executed before this node.
Sourcepub fn append_after_exit(&mut self, decorator_ids: &[DecoratorId])
pub fn append_after_exit(&mut self, decorator_ids: &[DecoratorId])
Sets the list of decorators to be executed after this node.
Trait Implementations§
impl Eq for MastNode
impl StructuralPartialEq for MastNode
Auto Trait Implementations§
impl Freeze for MastNode
impl RefUnwindSafe for MastNode
impl Send for MastNode
impl Sync for MastNode
impl Unpin for MastNode
impl UnwindSafe for MastNode
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