pub struct SolverScope<'t, S: PlanningSolution, D: Director<S>, ProgressCb = ()> {
pub inphase_step_count_limit: Option<u64>,
pub inphase_move_count_limit: Option<u64>,
pub inphase_score_calc_count_limit: Option<u64>,
/* private fields */
}Fields§
§inphase_step_count_limit: Option<u64>§inphase_move_count_limit: Option<u64>§inphase_score_calc_count_limit: Option<u64>Implementations§
Source§impl<'t, S: PlanningSolution, D: Director<S>> SolverScope<'t, S, D, ()>
impl<'t, S: PlanningSolution, D: Director<S>> SolverScope<'t, S, D, ()>
Source§impl<'t, S: PlanningSolution, D: Director<S>, ProgressCb: ProgressCallback<S>> SolverScope<'t, S, D, ProgressCb>
impl<'t, S: PlanningSolution, D: Director<S>, ProgressCb: ProgressCallback<S>> SolverScope<'t, S, D, ProgressCb>
pub fn new_with_callback( score_director: D, callback: ProgressCb, terminate: Option<&'t AtomicBool>, runtime: Option<SolverRuntime<S>>, ) -> Self
pub fn with_terminate(self, terminate: Option<&'t AtomicBool>) -> Self
pub fn with_runtime(self, runtime: Option<SolverRuntime<S>>) -> Self
pub fn with_seed(self, seed: u64) -> Self
pub fn with_progress_callback<F: ProgressCallback<S>>( self, callback: F, ) -> SolverScope<'t, S, D, F>
pub fn start_solving(&mut self)
pub fn elapsed(&self) -> Option<Duration>
pub fn time_since_last_improvement(&self) -> Option<Duration>
pub fn score_director(&self) -> &D
pub fn score_director_mut(&mut self) -> &mut D
pub fn working_solution(&self) -> &S
pub fn working_solution_mut(&mut self) -> &mut S
pub fn calculate_score(&mut self) -> S::Score
pub fn best_solution(&self) -> Option<&S>
pub fn best_score(&self) -> Option<&S::Score>
pub fn current_score(&self) -> Option<&S::Score>
pub fn terminal_reason(&self) -> SolverTerminalReason
pub fn set_current_score(&mut self, score: S::Score)
pub fn report_progress(&self)
pub fn report_best_solution(&self)
pub fn update_best_solution(&mut self)
pub fn set_best_solution(&mut self, solution: S, score: S::Score)
pub fn rng(&mut self) -> &mut StdRng
pub fn increment_step_count(&mut self) -> u64
pub fn total_step_count(&self) -> u64
pub fn take_best_solution(self) -> Option<S>
pub fn take_best_or_working_solution(self) -> S
pub fn take_solution_and_stats( self, ) -> (S, Option<S::Score>, S::Score, SolverStats, SolverTerminalReason)
pub fn is_terminate_early(&self) -> bool
pub fn set_time_limit(&mut self, limit: Duration)
pub fn pause_if_requested(&mut self)
pub fn pause_timers(&mut self)
pub fn resume_timers(&mut self)
pub fn should_terminate_construction(&mut self) -> bool
pub fn should_terminate(&mut self) -> bool
pub fn mark_cancelled(&mut self)
pub fn mark_terminated_by_config(&mut self)
pub fn stats(&self) -> &SolverStats
pub fn stats_mut(&mut self) -> &mut SolverStats
Auto Trait Implementations§
impl<'t, S, D, ProgressCb> Freeze for SolverScope<'t, S, D, ProgressCb>
impl<'t, S, D, ProgressCb> RefUnwindSafe for SolverScope<'t, S, D, ProgressCb>where
D: RefUnwindSafe,
ProgressCb: RefUnwindSafe,
S: RefUnwindSafe,
<S as PlanningSolution>::Score: RefUnwindSafe,
impl<'t, S, D, ProgressCb> Send for SolverScope<'t, S, D, ProgressCb>where
ProgressCb: Send,
impl<'t, S, D, ProgressCb> Sync for SolverScope<'t, S, D, ProgressCb>
impl<'t, S, D, ProgressCb> Unpin for SolverScope<'t, S, D, ProgressCb>
impl<'t, S, D, ProgressCb> UnsafeUnpin for SolverScope<'t, S, D, ProgressCb>where
D: UnsafeUnpin,
ProgressCb: UnsafeUnpin,
S: UnsafeUnpin,
<S as PlanningSolution>::Score: UnsafeUnpin,
impl<'t, S, D, ProgressCb> UnwindSafe for SolverScope<'t, S, D, ProgressCb>where
D: UnwindSafe,
ProgressCb: UnwindSafe,
S: UnwindSafe,
<S as PlanningSolution>::Score: UnwindSafe,
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> 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