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}