pub struct TerminationConfig {
pub spent_limit: Option<String>,
pub unimproved_spent_limit: Option<String>,
pub unimproved_step_count: Option<u64>,
pub best_score_limit: Option<String>,
pub best_score_feasible: Option<bool>,
pub step_count_limit: Option<u64>,
pub move_count_limit: Option<u64>,
pub score_calculation_count_limit: Option<u64>,
pub diminished_returns: Option<DiminishedReturnsConfig>,
}Expand description
Configuration for when the solver should stop.
Combine multiple criteria - the solver stops when ANY criterion is met.
§Example
use solverforge_core::solver::TerminationConfig;
// Stop after 5 minutes OR when a feasible solution is found
let termination = TerminationConfig::new()
.with_spent_limit("PT5M")
.with_best_score_feasible(true);
assert_eq!(termination.spent_limit, Some("PT5M".to_string()));§Time Format
Time limits use ISO-8601 duration format:
PT30S= 30 secondsPT5M= 5 minutesPT1H= 1 hourPT1H30M= 1 hour 30 minutes
Fields§
§spent_limit: Option<String>§unimproved_spent_limit: Option<String>§unimproved_step_count: Option<u64>§best_score_limit: Option<String>§best_score_feasible: Option<bool>§step_count_limit: Option<u64>§move_count_limit: Option<u64>§score_calculation_count_limit: Option<u64>§diminished_returns: Option<DiminishedReturnsConfig>Implementations§
Source§impl TerminationConfig
impl TerminationConfig
pub fn new() -> Self
pub fn with_spent_limit(self, limit: impl Into<String>) -> Self
pub fn with_unimproved_spent_limit(self, limit: impl Into<String>) -> Self
pub fn with_unimproved_step_count(self, count: u64) -> Self
pub fn with_best_score_limit(self, limit: impl Into<String>) -> Self
pub fn with_best_score_feasible(self, feasible: bool) -> Self
pub fn with_step_count_limit(self, count: u64) -> Self
pub fn with_move_count_limit(self, count: u64) -> Self
pub fn with_score_calculation_count_limit(self, count: u64) -> Self
pub fn with_diminished_returns(self, config: DiminishedReturnsConfig) -> Self
Trait Implementations§
Source§impl Clone for TerminationConfig
impl Clone for TerminationConfig
Source§fn clone(&self) -> TerminationConfig
fn clone(&self) -> TerminationConfig
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 TerminationConfig
impl Debug for TerminationConfig
Source§impl Default for TerminationConfig
impl Default for TerminationConfig
Source§fn default() -> TerminationConfig
fn default() -> TerminationConfig
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for TerminationConfig
impl<'de> Deserialize<'de> for TerminationConfig
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
Source§impl PartialEq for TerminationConfig
impl PartialEq for TerminationConfig
Source§impl Serialize for TerminationConfig
impl Serialize for TerminationConfig
impl Eq for TerminationConfig
impl StructuralPartialEq for TerminationConfig
Auto Trait Implementations§
impl Freeze for TerminationConfig
impl RefUnwindSafe for TerminationConfig
impl Send for TerminationConfig
impl Sync for TerminationConfig
impl Unpin for TerminationConfig
impl UnwindSafe for TerminationConfig
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.