pub struct Analyzer {
pub issues: Vec<Issue>,
pub graph: IssueGraph,
pub metrics: GraphMetrics,
}Fields§
§issues: Vec<Issue>§graph: IssueGraph§metrics: GraphMetricsImplementations§
Source§impl Analyzer
impl Analyzer
Sourcepub const DEFAULT_INSIGHT_LIMIT: usize = 20
pub const DEFAULT_INSIGHT_LIMIT: usize = 20
Default limit for insight result lists (bottlenecks, influencers, etc.).
pub fn new(issues: Vec<Issue>) -> Self
pub fn new_with_config(issues: Vec<Issue>, config: &AnalysisConfig) -> Self
Sourcepub fn new_fast(issues: Vec<Issue>) -> Self
pub fn new_fast(issues: Vec<Issue>) -> Self
Create an analyzer with only fast O(V+E) metrics computed.
Betweenness, eigenvector, and HITS are deferred. Call
[spawn_slow_computation] to compute them in a background thread.
Sourcepub fn is_large_graph(&self) -> bool
pub fn is_large_graph(&self) -> bool
Returns true if this graph exceeds the background computation threshold.
Sourcepub fn spawn_slow_computation(&self) -> Receiver<GraphMetrics>
pub fn spawn_slow_computation(&self) -> Receiver<GraphMetrics>
Spawn a background thread to compute expensive metrics.
Returns a receiver that will yield the slow-phase GraphMetrics when done.
The caller should poll via try_recv() and call apply_slow_metrics().
Sourcepub fn apply_slow_metrics(&mut self, slow: GraphMetrics)
pub fn apply_slow_metrics(&mut self, slow: GraphMetrics)
Merge slow-phase metrics into this analyzer’s metrics.
pub fn triage(&self, options: TriageOptions) -> TriageComputation
pub fn plan(&self, score_by_id: &HashMap<String, f64>) -> ExecutionPlan
pub fn what_if(&self, issue_id: &str) -> Option<WhatIfDelta>
pub fn top_what_ifs(&self, top_n: usize) -> Vec<WhatIfDelta>
pub fn insights(&self) -> Insights
pub fn insights_with_limit(&self, max_items: usize) -> Insights
pub fn advanced_insights(&self) -> AdvancedInsights
Sourcepub fn top_k_unlock_set(&self, k: usize) -> TopKSetResult
pub fn top_k_unlock_set(&self, k: usize) -> TopKSetResult
Compute ONLY the top-k submodular unlock-maximizing set.
Prefer this over advanced_insights() when the caller needs just the
unlock ranking. advanced_insights() additionally computes coverage,
k-paths, cycle-break, parallel-cut, and parallel-gain — each scales
with graph size, and on a 5k-issue graph that’s seconds of wasted work
when all you want is top_k_set. See issue #4 (--robot-overview) for
the motivating use case.