Skip to main content

SolverConfig

Struct SolverConfig 

Source
pub struct SolverConfig {
    pub environment_mode: EnvironmentMode,
    pub random_seed: Option<u64>,
    pub move_thread_count: MoveThreadCount,
    pub termination: Option<TerminationConfig>,
    pub score_director: Option<DirectorConfig>,
    pub phases: Vec<PhaseConfig>,
    pub candidate_trace: Option<CandidateTraceConfig>,
}

Fields§

§environment_mode: EnvironmentMode§random_seed: Option<u64>§move_thread_count: MoveThreadCount§termination: Option<TerminationConfig>§score_director: Option<DirectorConfig>§phases: Vec<PhaseConfig>§candidate_trace: Option<CandidateTraceConfig>

Optional bounded candidate-pull trace for cross-runtime diagnostics.

This is deliberately opt-in: recording a trace retains one owned identity per engine-consumed candidate. A non-zero cap is required so diagnostic runs cannot accidentally retain an unbounded neighborhood.

Implementations§

Source§

impl SolverConfig

Source

pub fn new() -> Self

Source

pub fn load(path: impl AsRef<Path>) -> Result<Self, ConfigError>

Loads configuration from a TOML file.

§Errors

Returns error if file doesn’t exist or contains invalid TOML.

Source

pub fn from_toml_file(path: impl AsRef<Path>) -> Result<Self, ConfigError>

Loads configuration from a TOML file.

Source

pub fn from_toml_str(s: &str) -> Result<Self, ConfigError>

Parses configuration from a TOML string.

Source

pub fn from_yaml_file(path: impl AsRef<Path>) -> Result<Self, ConfigError>

Loads configuration from a YAML file.

Source

pub fn from_yaml_str(s: &str) -> Result<Self, ConfigError>

Parses configuration from a YAML string.

Source

pub fn with_termination_seconds(self, seconds: u64) -> Self

Source

pub fn with_random_seed(self, seed: u64) -> Self

Source

pub fn with_phase(self, phase: PhaseConfig) -> Self

Source

pub fn canonical_toml(&self) -> String

Returns a deterministic, complete representation of this effective configuration for diagnostic provenance.

The representation is intentionally produced by the same serde model used to load solver configuration. Consumers compare this exact value together with the resolved phase plan in the candidate trace header.

Source

pub fn canonical_phase_toml(phase: &PhaseConfig) -> String

Returns the canonical solver-document representation of one phase.

Runtime provenance uses this rather than debug formatting so every configured selector, acceptor, forager, target, and termination field participates in the candidate-trace plan digest.

Source

pub fn time_limit(&self) -> Option<Duration>

Returns the termination time limit, if configured.

Convenience method that delegates to termination.time_limit().

§Examples
use solverforge_config::SolverConfig;
use std::time::Duration;

let config = SolverConfig::from_toml_str(r#"
    [termination]
    seconds_spent_limit = 30
"#).unwrap();

assert_eq!(config.time_limit(), Some(Duration::from_secs(30)));

Trait Implementations§

Source§

impl Clone for SolverConfig

Source§

fn clone(&self) -> SolverConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SolverConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SolverConfig

Source§

fn default() -> SolverConfig

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for SolverConfig

Source§

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 Serialize for SolverConfig

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.