pub struct CfgBlockData {
pub id: i64,
pub kind: String,
pub terminator: String,
pub byte_start: u64,
pub byte_end: u64,
pub start_line: u64,
pub start_col: u64,
pub end_line: u64,
pub end_col: u64,
pub coord_x: i64,
pub coord_y: i64,
pub coord_z: i64,
}Expand description
CFG block data (backend-agnostic representation)
This struct represents the data returned by StorageTrait::get_cfg_blocks.
It is a simplified version of Magellan’s CfgBlock that contains only the
fields needed by Mirage for CFG analysis.
Fields§
§id: i64Block ID (from cfg_blocks table)
kind: StringBlock kind (entry, conditional, loop, match, return, etc.)
terminator: StringTerminator kind (how control exits this block)
byte_start: u64Byte offset where block starts
byte_end: u64Byte offset where block ends
start_line: u64Line where block starts (1-indexed)
start_col: u64Column where block starts (0-indexed)
end_line: u64Line where block ends (1-indexed)
end_col: u64Column where block ends (0-indexed)
coord_x: i644D Spatial Coordinates X coordinate: dominator depth (control flow hierarchy level)
coord_y: i64Y coordinate: loop nesting depth (how many loops surround this block)
coord_z: i64Z coordinate: branch distance from entry point
Trait Implementations§
Source§impl Clone for CfgBlockData
impl Clone for CfgBlockData
Source§fn clone(&self) -> CfgBlockData
fn clone(&self) -> CfgBlockData
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CfgBlockData
impl Debug for CfgBlockData
Source§impl<'de> Deserialize<'de> for CfgBlockData
impl<'de> Deserialize<'de> for CfgBlockData
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for CfgBlockData
impl RefUnwindSafe for CfgBlockData
impl Send for CfgBlockData
impl Sync for CfgBlockData
impl Unpin for CfgBlockData
impl UnsafeUnpin for CfgBlockData
impl UnwindSafe for CfgBlockData
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<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>
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>
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