pub struct LeftHandSideBuilder { /* private fields */ }
Expand description
A builder for a LeftHandSide
.
Implementations§
Source§impl LeftHandSideBuilder
impl LeftHandSideBuilder
Sourcepub fn assignment(
&mut self,
name: Option<String>,
type: Option<Type>,
value: impl Into<AssignmentRhs>,
attributes: Vec<Attribute>,
) -> ValueId
pub fn assignment( &mut self, name: Option<String>, type: Option<Type>, value: impl Into<AssignmentRhs>, attributes: Vec<Attribute>, ) -> ValueId
Create a new assignment statement.
Returns the value defined by the assignment.
§Panics
Panics if name
(when given) does not start with ‘%’.
Sourcepub fn block(&mut self, name: Option<String>, predecessors: u32) -> BlockId
pub fn block(&mut self, name: Option<String>, predecessors: u32) -> BlockId
Create a new basic block.
Declare that the block has predecessors
number of incoming edges in
the control-flow graph.
§Panics
Panics if name
(when given) does not start with ‘%’.
Sourcepub fn pc(&mut self, x: impl Into<Operand>, y: impl Into<Operand>)
pub fn pc(&mut self, x: impl Into<Operand>, y: impl Into<Operand>)
Create a path condition.
Expresses the fact that x
must equal y
for the replacement to be
valid.
Sourcepub fn block_pc(
&mut self,
block: BlockId,
predecessor: u32,
x: impl Into<Operand>,
y: impl Into<Operand>,
)
pub fn block_pc( &mut self, block: BlockId, predecessor: u32, x: impl Into<Operand>, y: impl Into<Operand>, )
Create a block path condition.
Expresses that x
is equal to y
on an incoming edge to block
in the
control-flow graph.
§Panics
Panics if predecessor
is greater than or equal to block
’s number of
predecessors.
Sourcepub fn finish(
self,
lhs: ValueId,
attributes: impl IntoIterator<Item = RootAttribute>,
) -> LeftHandSide
pub fn finish( self, lhs: ValueId, attributes: impl IntoIterator<Item = RootAttribute>, ) -> LeftHandSide
Finish building this LeftHandSide
.
Sourcepub fn get_value(&self, id: ValueId) -> &Assignment
pub fn get_value(&self, id: ValueId) -> &Assignment
Get the assignment that created the given value.
§Panics
May panic when given a ValudId
from a different LHS, RHS, or
replacement.
Trait Implementations§
Source§impl Clone for LeftHandSideBuilder
impl Clone for LeftHandSideBuilder
Source§fn clone(&self) -> LeftHandSideBuilder
fn clone(&self) -> LeftHandSideBuilder
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for LeftHandSideBuilder
impl Debug for LeftHandSideBuilder
Source§impl Default for LeftHandSideBuilder
impl Default for LeftHandSideBuilder
Source§fn default() -> LeftHandSideBuilder
fn default() -> LeftHandSideBuilder
Auto Trait Implementations§
impl Freeze for LeftHandSideBuilder
impl RefUnwindSafe for LeftHandSideBuilder
impl Send for LeftHandSideBuilder
impl Sync for LeftHandSideBuilder
impl Unpin for LeftHandSideBuilder
impl UnwindSafe for LeftHandSideBuilder
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)