Struct orzir_core::Block
source · pub struct Block { /* private fields */ }Expand description
The block in the region.
Implementations§
source§impl Block
impl Block
sourcepub fn new(
ctx: &mut Context,
is_entry: bool,
parent_region: ArenaPtr<Region>,
name: Option<String>
) -> ArenaPtr<Block>
pub fn new( ctx: &mut Context, is_entry: bool, parent_region: ArenaPtr<Region>, name: Option<String> ) -> ArenaPtr<Block>
Create a new block.
sourcepub fn layout(&self) -> &List<ArenaPtr<OpObj>, OpNode>
pub fn layout(&self) -> &List<ArenaPtr<OpObj>, OpNode>
Get the layout of operations in the block.
sourcepub fn layout_mut(&mut self) -> &mut List<ArenaPtr<OpObj>, OpNode>
pub fn layout_mut(&mut self) -> &mut List<ArenaPtr<OpObj>, OpNode>
Get the mutable layout of operations in the block.
sourcepub fn name(&self, ctx: &Context) -> String
pub fn name(&self, ctx: &Context) -> String
Get the name of the block.
This will allocate a new name if the block does not have one.
sourcepub fn set_name(
&self,
ctx: &Context,
name: String
) -> Result<(), NameAllocDuplicatedErr>
pub fn set_name( &self, ctx: &Context, name: String ) -> Result<(), NameAllocDuplicatedErr>
Set the name of the block.
sourcepub fn set_arg(
&mut self,
index: usize,
arg: ArenaPtr<Value>
) -> Option<ArenaPtr<Value>>
pub fn set_arg( &mut self, index: usize, arg: ArenaPtr<Value> ) -> Option<ArenaPtr<Value>>
Set the arguments of the block by the given index.
sourcepub fn parent_region(&self) -> ArenaPtr<Region>
pub fn parent_region(&self) -> ArenaPtr<Region>
Get the parent region of the block.
Trait Implementations§
source§impl Parse for Block
impl Parse for Block
source§fn parse(
ctx: &mut Context,
state: &mut ParseState<'_>
) -> ParseResult<Self::Item>
fn parse( ctx: &mut Context, state: &mut ParseState<'_> ) -> ParseResult<Self::Item>
Parsing a block.
A block starts with a block label ^..., and an optional list of block
arguments. A block ends with the } token, which indicates the end of a
region, or another block label.
type Item = ArenaPtr<Block>
source§impl Print for Block
impl Print for Block
fn print(&self, ctx: &Context, state: &mut PrintState) -> PrintResult<()>
source§impl RunVerifiers for Block
impl RunVerifiers for Block
fn run_verifiers(&self, _ctx: &Context) -> VerifyResult<()>
Auto Trait Implementations§
impl Freeze for Block
impl !RefUnwindSafe for Block
impl !Send for Block
impl !Sync for Block
impl Unpin for Block
impl !UnwindSafe for Block
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.