pub struct SolverStats { /* private fields */ }Implementations§
Source§impl SolverStats
impl SolverStats
Sourcepub fn elapsed(&self) -> Duration
pub fn elapsed(&self) -> Duration
Solver-active time since start, excluding pauses; zero before it.
Sourcepub fn active_elapsed(&self) -> Option<Duration>
pub fn active_elapsed(&self) -> Option<Duration>
Solver-active time since start, or None before the solve started.
Sourcepub fn started_at(&self) -> Option<Instant>
pub fn started_at(&self) -> Option<Instant>
The start instant, shifted forward by every finished pause.
pub fn is_paused(&self) -> bool
pub fn pause(&mut self)
pub fn resume(&mut self)
Sourcepub fn begin_phase(&mut self, phase_type: &'static str)
pub fn begin_phase(&mut self, phase_type: &'static str)
Opens the next phase; counters recorded from now on belong to it. A phase still running is finished first.
Sourcepub fn end_phase(&mut self)
pub fn end_phase(&mut self)
Freezes the running phase’s record and folds it into the run totals.
Sourcepub fn phase_elapsed(&self) -> Option<Duration>
pub fn phase_elapsed(&self) -> Option<Duration>
Solver-active time the running phase has spent, if a phase is running.
Sourcepub fn phase(&self) -> Option<&PhaseStats>
pub fn phase(&self) -> Option<&PhaseStats>
Statistics of the phase that is running, if any.
pub fn phase_mut(&mut self) -> Option<&mut PhaseStats>
Sourcepub fn step_count(&self) -> u64
pub fn step_count(&self) -> u64
Steps taken across all phases.
Sourcepub fn moves_generated(&self) -> u64
pub fn moves_generated(&self) -> u64
Candidate moves actually yielded by cursors across all phases. Unrequested logical neighborhood tails are not generated work.
pub fn moves_evaluated(&self) -> u64
Sourcepub fn moves_speculative(&self) -> u64
pub fn moves_speculative(&self) -> u64
Candidates evaluated ahead of the sequential decision point by parallel evaluation and then discarded.
pub fn moves_accepted(&self) -> u64
pub fn moves_applied(&self) -> u64
pub fn moves_not_doable(&self) -> u64
pub fn moves_acceptor_rejected(&self) -> u64
pub fn moves_forager_ignored(&self) -> u64
pub fn moves_hard_improving(&self) -> u64
pub fn moves_hard_neutral(&self) -> u64
pub fn moves_hard_worse(&self) -> u64
pub fn conflict_repair_provider_generated(&self) -> u64
pub fn conflict_repair_duplicate_filtered(&self) -> u64
pub fn conflict_repair_illegal_filtered(&self) -> u64
pub fn conflict_repair_not_doable_filtered(&self) -> u64
pub fn conflict_repair_hard_improving(&self) -> u64
pub fn conflict_repair_exposed(&self) -> u64
pub fn score_calculations(&self) -> u64
pub fn construction_slots_assigned(&self) -> u64
pub fn construction_slots_kept(&self) -> u64
pub fn construction_slots_no_doable(&self) -> u64
Sourcepub fn scalar_assignment_required_remaining(&self) -> u64
pub fn scalar_assignment_required_remaining(&self) -> u64
Required scalar-assignment rows still unassigned, summed over groups.
Sourcepub fn record_generated_batch(&mut self, count: u64, duration: Duration)
pub fn record_generated_batch(&mut self, count: u64, duration: Duration)
Records one or more generated candidate moves and the time spent generating them.
pub fn record_selector_generated( &mut self, selector_index: usize, count: u64, duration: Duration, )
Sourcepub fn record_generation_time(&mut self, duration: Duration)
pub fn record_generation_time(&mut self, duration: Duration)
Records generation time that did not itself yield a counted move.
Sourcepub fn record_generated_move(&mut self, duration: Duration)
pub fn record_generated_move(&mut self, duration: Duration)
Records a single generated candidate move and the time spent generating it.
Sourcepub fn record_evaluated_move(&mut self, duration: Duration)
pub fn record_evaluated_move(&mut self, duration: Duration)
Records a move evaluation and the time spent evaluating it.
pub fn record_selector_evaluated( &mut self, selector_index: usize, duration: Duration, )
pub fn record_move_accepted(&mut self)
pub fn record_selector_accepted(&mut self, selector_index: usize)
pub fn record_move_applied(&mut self)
pub fn record_selector_applied(&mut self, selector_index: usize)
pub fn record_move_not_doable(&mut self)
pub fn record_selector_not_doable(&mut self, selector_index: usize)
pub fn record_move_acceptor_rejected(&mut self)
pub fn record_selector_acceptor_rejected(&mut self, selector_index: usize)
pub fn record_moves_forager_ignored(&mut self, count: u64)
pub fn record_move_hard_improving(&mut self)
pub fn record_move_hard_neutral(&mut self)
pub fn record_move_hard_worse(&mut self)
pub fn record_conflict_repair_provider_generated(&mut self, count: u64)
pub fn record_conflict_repair_duplicate_filtered(&mut self)
pub fn record_conflict_repair_illegal_filtered(&mut self)
pub fn record_conflict_repair_not_doable_filtered(&mut self)
pub fn record_conflict_repair_hard_improving(&mut self)
pub fn record_conflict_repair_exposed(&mut self)
Sourcepub fn record_step(&mut self)
pub fn record_step(&mut self)
Records a step completion.
Sourcepub fn record_score_calculation(&mut self)
pub fn record_score_calculation(&mut self)
Records a score calculation.
Sourcepub fn record_move_speculative(&mut self)
pub fn record_move_speculative(&mut self)
Records a candidate that parallel evaluation evaluated ahead of the sequential decision point and then discarded.
pub fn record_construction_slot_assigned(&mut self)
pub fn record_construction_slot_kept(&mut self)
pub fn record_construction_slot_no_doable(&mut self)
pub fn record_move_kind_generated(&mut self, move_label: &'static str)
pub fn record_move_kind_evaluated( &mut self, move_label: &'static str, score_ordering: Ordering, )
pub fn record_move_kind_evaluated_unscored(&mut self, move_label: &'static str)
pub fn record_move_kind_accepted(&mut self, move_label: &'static str)
pub fn record_move_kind_applied( &mut self, move_label: &'static str, score_improvement: f64, )
pub fn record_move_kind_not_doable(&mut self, move_label: &'static str)
pub fn record_move_kind_acceptor_rejected( &mut self, move_label: &'static str, score_ordering: Ordering, )
pub fn record_move_kind_forager_ignored( &mut self, move_label: &'static str, count: u64, )
pub fn record_applied_move_trace(&mut self, applied_move: AppliedMoveTelemetry)
pub fn record_selector_generated_with_label( &mut self, selector_index: usize, selector_label: impl Into<String>, count: u64, duration: Duration, )
Sourcepub fn record_scalar_assignment_required_remaining(
&mut self,
group_name: &'static str,
count: u64,
)
pub fn record_scalar_assignment_required_remaining( &mut self, group_name: &'static str, count: u64, )
Records the required rows a scalar-assignment group still leaves unassigned. The run value sums the latest count of every group; the running phase keeps the latest count it saw.
pub fn generation_time(&self) -> Duration
pub fn evaluation_time(&self) -> Duration
pub fn generated_throughput(&self) -> Throughput
pub fn evaluated_throughput(&self) -> Throughput
pub fn acceptance_rate(&self) -> f64
pub fn snapshot(&self) -> SolverTelemetry
pub fn snapshot_without_applied_move_trace(&self) -> SolverTelemetry
pub fn moves_score_improving(&self) -> u64
pub fn moves_applied_improving(&self) -> u64
Trait Implementations§
Source§impl Debug for SolverStats
impl Debug for SolverStats
Auto Trait Implementations§
impl Freeze for SolverStats
impl RefUnwindSafe for SolverStats
impl Send for SolverStats
impl Sync for SolverStats
impl Unpin for SolverStats
impl UnsafeUnpin for SolverStats
impl UnwindSafe for SolverStats
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> 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