conjure_core/stats/
solver_stats.rs1use schemars::JsonSchema;
2use serde::Serialize;
3use serde_with::skip_serializing_none;
4
5use crate::solver::SolverFamily;
6
7#[skip_serializing_none]
8#[derive(Default, Serialize, Clone, JsonSchema, Debug)]
9#[serde(rename_all = "camelCase")]
10#[allow(dead_code)]
11pub struct SolverStats {
13 #[serde(rename = "conjureSolverWallTime_s")]
14 pub conjure_solver_wall_time_s: f64,
16
17 pub solver_family: Option<SolverFamily>,
20
21 pub solver_adaptor: Option<String>,
23
24 pub nodes: Option<u64>,
26 pub satisfiable: Option<bool>,
27 pub sat_vars: Option<u64>,
28 pub sat_clauses: Option<u64>,
29}
30
31impl SolverStats {
32 pub fn with_timings(self, wall_time_s: f64) -> SolverStats {
34 SolverStats {
35 conjure_solver_wall_time_s: wall_time_s,
36 ..self.clone()
37 }
38 }
39}