pub struct CfgDiff {
pub function_id: i64,
pub function_name: String,
pub before_snapshot: String,
pub after_snapshot: String,
pub added_blocks: Vec<BlockDiff>,
pub deleted_blocks: Vec<BlockDiff>,
pub modified_blocks: Vec<BlockChange>,
pub added_edges: Vec<EdgeDiff>,
pub deleted_edges: Vec<EdgeDiff>,
pub structural_similarity: f64,
}Expand description
CFG diff result comparing two snapshots of a function
Contains all changes detected between the before and after snapshots, including added/deleted/modified blocks and edges, plus a similarity score.
Fields§
§function_id: i64Function entity ID
function_name: StringFunction fully-qualified name
before_snapshot: StringBefore snapshot identifier (transaction ID or “current”)
after_snapshot: StringAfter snapshot identifier (transaction ID or “current”)
added_blocks: Vec<BlockDiff>Blocks added in after snapshot
deleted_blocks: Vec<BlockDiff>Blocks deleted from before snapshot
modified_blocks: Vec<BlockChange>Blocks modified between snapshots
added_edges: Vec<EdgeDiff>Edges added in after snapshot
deleted_edges: Vec<EdgeDiff>Edges deleted from before snapshot
structural_similarity: f64Structural similarity score (0.0 = completely different, 1.0 = identical)
Trait Implementations§
Source§impl<'de> Deserialize<'de> for CfgDiff
impl<'de> Deserialize<'de> for CfgDiff
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for CfgDiff
impl RefUnwindSafe for CfgDiff
impl Send for CfgDiff
impl Sync for CfgDiff
impl Unpin for CfgDiff
impl UnsafeUnpin for CfgDiff
impl UnwindSafe for CfgDiff
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<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