pub struct GraphMetrics {
pub outdegree: usize,
pub indegree: usize,
pub depth: usize,
pub betweenness: f64,
pub clustering: f64,
}Expand description
Graph metrics for a function in the call graph
Fields§
§outdegree: usizeNumber of functions this function calls (outgoing edges)
indegree: usizeNumber of functions that call this function (incoming edges)
depth: usizeDistance from entry points (main, public APIs)
betweenness: f64Betweenness centrality (how often this function appears on shortest paths)
clustering: f64Clustering coefficient (how connected a function’s neighbors are)
Implementations§
Source§impl GraphMetrics
impl GraphMetrics
Sourcepub fn compute(call_graph: &CallGraph, function_id: &FunctionId) -> Self
pub fn compute(call_graph: &CallGraph, function_id: &FunctionId) -> Self
Compute metrics for a function in the call graph
Sourcepub fn is_orchestrator(&self) -> bool
pub fn is_orchestrator(&self) -> bool
Check if function is an orchestrator (high outdegree, coordinates operations)
Sourcepub fn is_bridge(&self) -> bool
pub fn is_bridge(&self) -> bool
Check if function is a bridge (high betweenness, connects modules)
Sourcepub fn is_utility_cluster(&self) -> bool
pub fn is_utility_cluster(&self) -> bool
Check if function is part of utility cluster (tight coupling)
Trait Implementations§
Source§impl Clone for GraphMetrics
impl Clone for GraphMetrics
Source§fn clone(&self) -> GraphMetrics
fn clone(&self) -> GraphMetrics
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for GraphMetrics
impl Debug for GraphMetrics
Source§impl<'de> Deserialize<'de> for GraphMetrics
impl<'de> Deserialize<'de> for GraphMetrics
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 GraphMetrics
impl RefUnwindSafe for GraphMetrics
impl Send for GraphMetrics
impl Sync for GraphMetrics
impl Unpin for GraphMetrics
impl UnsafeUnpin for GraphMetrics
impl UnwindSafe for GraphMetrics
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> EnsureExt<T> for T
impl<T> EnsureExt<T> for T
Source§fn ensure<P, E>(self, predicate: P, error: E) -> Validation<T, NonEmptyVec<E>>where
P: Predicate<T>,
fn ensure<P, E>(self, predicate: P, error: E) -> Validation<T, NonEmptyVec<E>>where
P: Predicate<T>,
Validate that this value satisfies the given predicate. Read more
Source§fn ensure_with<P, E, F>(
self,
predicate: P,
error_fn: F,
) -> Validation<T, NonEmptyVec<E>>
fn ensure_with<P, E, F>( self, predicate: P, error_fn: F, ) -> Validation<T, NonEmptyVec<E>>
Validate with an error-generating function. Read more
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