condor-pathfinding-grid 0.4.0

Grid pathfinding, preprocessing, replanning, and multi-agent algorithms for Condor.
Documentation
//! Inspect-mode expansion counters for the row-interval Anya candidate.
//!
//! These tallies exist only for [`super::Anya::inspect`]. They are not part of
//! public [`crate::AnyAngleSearchStats`] and must not be compared to Theta*
//! vertex-pop counts.

/// Solver-local diagnostics for row-interval Anya (inspect path only).
///
/// Public search does not fill these counters; interval generation, dominance,
/// and exact-supervisor replacement fields apply only to instrumented runs.
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub struct AnyaDiagnostics {
    /// Interval states allocated in the arena.
    pub generated: usize,
    /// States inserted into the open heap.
    pub pushed: usize,
    /// Heap pops (including stale).
    pub popped: usize,
    /// Stale pops rejected by generation tracking.
    pub stale: usize,
    /// States fully expanded for successors.
    pub expanded: usize,
    /// Candidates discarded by dominance.
    pub dominated: usize,
    /// Flat-span interval states generated.
    pub flat_states: usize,
    /// Root-cone interval states generated.
    pub cone_states: usize,
    /// Successors produced from flat parents.
    pub flat_successors: usize,
    /// Successors produced from cone parents.
    pub cone_successors: usize,
    /// Row-interval split operations.
    pub interval_splits: usize,
    /// Row-interval merge operations.
    pub interval_merges: usize,
    /// Open-run projection attempts onto adjacent rows.
    pub run_projections: usize,
    /// Goal-connection candidates evaluated.
    pub goal_candidates: usize,
    /// Goal connections that improved the incumbent.
    pub goal_improvements: usize,
    /// Peak open-heap size.
    pub heap_peak: usize,
    /// Approximate arena storage bytes for interval states.
    pub state_bytes: usize,
    /// Approximate storage bytes for the row-run index.
    pub run_index_bytes: usize,
    /// Vertices in the resulting path (0 when no path).
    pub path_points: usize,
    /// Path segments checked under sampling LOS.
    pub validation_segments: usize,
    /// Exact visibility-graph supervisor queries issued for this search.
    pub exact_supervisor_queries: usize,
    /// Interval candidates replaced by the exact supervisor.
    pub exact_supervisor_replacements: usize,
}

/// Instrumented Anya outcome: pathfinder result plus expansion diagnostics.
#[derive(Debug, Clone, PartialEq)]
pub struct AnyaInspection {
    /// Standard any-angle found/no-path or invalid/budget result.
    pub result: crate::any_angle::AnyAngleSearchResult,
    /// Interval-candidate and supervisor tallies for this inspect run.
    pub diagnostics: AnyaDiagnostics,
}