pub struct Loop {
pub header: BlockId,
pub blocks: Vec<BlockId>,
pub depth: usize,
}Expand description
A detected loop in the CFG.
Fields§
§header: BlockIdLoop header block
blocks: Vec<BlockId>Blocks in the loop body
depth: usizeNesting depth
Implementations§
Source§impl Loop
impl Loop
Sourcepub fn with_blocks(header: BlockId, blocks: Vec<BlockId>) -> Self
pub fn with_blocks(header: BlockId, blocks: Vec<BlockId>) -> Self
Creates a new loop with the given header and blocks.
Sourcepub fn with_depth(header: BlockId, blocks: Vec<BlockId>, depth: usize) -> Self
pub fn with_depth(header: BlockId, blocks: Vec<BlockId>, depth: usize) -> Self
Creates a new loop with all fields specified.
Trait Implementations§
impl Eq for Loop
impl StructuralPartialEq for Loop
Auto Trait Implementations§
impl Freeze for Loop
impl RefUnwindSafe for Loop
impl Send for Loop
impl Sync for Loop
impl Unpin for Loop
impl UnsafeUnpin for Loop
impl UnwindSafe for Loop
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
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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>
Converts
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>
Converts
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 more