Skip to main content

perfgate_types/
defaults_config.rs

1use crate::NoisePolicy;
2use schemars::JsonSchema;
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, PartialEq, Default)]
6#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
7pub struct DefaultsConfig {
8    #[serde(skip_serializing_if = "Option::is_none", default)]
9    pub repeat: Option<u32>,
10
11    #[serde(skip_serializing_if = "Option::is_none", default)]
12    pub warmup: Option<u32>,
13
14    #[serde(skip_serializing_if = "Option::is_none", default)]
15    pub threshold: Option<f64>,
16
17    #[serde(skip_serializing_if = "Option::is_none", default)]
18    pub warn_factor: Option<f64>,
19
20    #[serde(skip_serializing_if = "Option::is_none", default)]
21    pub noise_threshold: Option<f64>,
22
23    #[serde(skip_serializing_if = "Option::is_none", default)]
24    pub noise_policy: Option<NoisePolicy>,
25
26    #[serde(skip_serializing_if = "Option::is_none", default)]
27    pub out_dir: Option<String>,
28
29    #[serde(skip_serializing_if = "Option::is_none", default)]
30    pub baseline_dir: Option<String>,
31
32    /// Optional baseline discovery pattern. Supports `{bench}` placeholder.
33    /// Example: `baselines/{bench}.json`.
34    #[serde(skip_serializing_if = "Option::is_none", default)]
35    pub baseline_pattern: Option<String>,
36
37    /// Optional Handlebars template path for markdown comments.
38    #[serde(skip_serializing_if = "Option::is_none", default)]
39    pub markdown_template: Option<String>,
40}