Skip to main content

solverforge_config/
forager.rs

1use serde::{Deserialize, Serialize};
2
3/// Forager configuration.
4#[derive(Debug, Clone, Default, Deserialize, Serialize)]
5#[serde(rename_all = "snake_case")]
6pub struct ForagerConfig {
7    /// Maximum number of accepted moves to consider.
8    pub accepted_count_limit: Option<usize>,
9
10    /// Whether to pick early if an improving move is found.
11    pub pick_early_type: Option<PickEarlyType>,
12}
13
14/// Pick early type.
15#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Deserialize, Serialize)]
16#[serde(rename_all = "snake_case")]
17pub enum PickEarlyType {
18    /// Never pick early.
19    #[default]
20    Never,
21
22    /// Pick first improving move.
23    FirstBestScoreImproving,
24
25    /// Pick first last step score improving move.
26    FirstLastStepScoreImproving,
27}