pub struct SolverConfig {
pub float_precision_digits: i32,
pub timeout_seconds: Option<u64>,
pub max_memory_mb: Option<u64>,
}Expand description
Configuration for the CSP solver
This struct contains all configurable parameters for the solver.
Use SolverConfig::default() for sensible defaults, or create a custom
configuration using the builder methods.
§Examples
use cspsolver::prelude::*;
// Use default configuration
let config = SolverConfig::default();
let mut m = Model::with_config(config);
// Custom configuration with precision and timeout settings
let config = SolverConfig::default()
.with_float_precision(8)
.with_timeout_seconds(60)
.with_max_memory_mb(1024);
let mut m = Model::with_config(config);Fields§
§float_precision_digits: i32Precision for float variables (decimal places)
timeout_seconds: Option<u64>Maximum time to spend solving (in seconds) None means no timeout
max_memory_mb: Option<u64>Maximum memory usage (in MB) None means no memory limit
Implementations§
Source§impl SolverConfig
impl SolverConfig
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new configuration with default values
§Examples
use cspsolver::config::SolverConfig;
let config = SolverConfig::new();
assert_eq!(config.float_precision_digits, 6);Sourcepub fn with_float_precision(self, precision_digits: i32) -> Self
pub fn with_float_precision(self, precision_digits: i32) -> Self
Set the float precision (number of decimal places)
§Examples
use cspsolver::config::SolverConfig;
let config = SolverConfig::new().with_float_precision(4);
assert_eq!(config.float_precision_digits, 4);Sourcepub fn with_timeout_seconds(self, seconds: u64) -> Self
pub fn with_timeout_seconds(self, seconds: u64) -> Self
Set the timeout in seconds
§Examples
use cspsolver::config::SolverConfig;
let config = SolverConfig::new().with_timeout_seconds(30);
assert_eq!(config.timeout_seconds, Some(30));Sourcepub fn without_timeout(self) -> Self
pub fn without_timeout(self) -> Self
Remove the timeout (allow unlimited solving time)
§Examples
use cspsolver::config::SolverConfig;
let config = SolverConfig::new()
.with_timeout_seconds(30)
.without_timeout();
assert_eq!(config.timeout_seconds, None);Sourcepub fn with_max_memory_mb(self, mb: u64) -> Self
pub fn with_max_memory_mb(self, mb: u64) -> Self
Set the maximum memory usage in MB
§Examples
use cspsolver::config::SolverConfig;
let config = SolverConfig::new().with_max_memory_mb(1024);
assert_eq!(config.max_memory_mb, Some(1024));Sourcepub fn without_memory_limit(self) -> Self
pub fn without_memory_limit(self) -> Self
Remove the memory limit (allow unlimited memory usage)
§Examples
use cspsolver::config::SolverConfig;
let config = SolverConfig::new()
.with_max_memory_mb(1024)
.without_memory_limit();
assert_eq!(config.max_memory_mb, None);Trait Implementations§
Source§impl Clone for SolverConfig
impl Clone for SolverConfig
Source§fn clone(&self) -> SolverConfig
fn clone(&self) -> SolverConfig
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 SolverConfig
impl Debug for SolverConfig
Auto Trait Implementations§
impl Freeze for SolverConfig
impl RefUnwindSafe for SolverConfig
impl Send for SolverConfig
impl Sync for SolverConfig
impl Unpin for SolverConfig
impl UnwindSafe for SolverConfig
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