entrenar/yaml_mode/manifest/
quantize.rs1use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct QuantizeConfig {
10 pub enabled: bool,
12
13 pub bits: u8,
15
16 #[serde(default, skip_serializing_if = "Option::is_none")]
18 pub scheme: Option<String>,
19
20 #[serde(default, skip_serializing_if = "Option::is_none")]
22 pub granularity: Option<String>,
23
24 #[serde(default, skip_serializing_if = "Option::is_none")]
26 pub group_size: Option<usize>,
27
28 #[serde(default, skip_serializing_if = "Option::is_none")]
30 pub qat: Option<QatConfig>,
31
32 #[serde(default, skip_serializing_if = "Option::is_none")]
34 pub calibration: Option<CalibrationConfig>,
35
36 #[serde(default, skip_serializing_if = "Option::is_none")]
38 pub exclude: Option<Vec<String>>,
39}
40
41#[derive(Debug, Clone, Serialize, Deserialize)]
43pub struct QatConfig {
44 pub enabled: bool,
45 #[serde(default, skip_serializing_if = "Option::is_none")]
46 pub observer: Option<String>,
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize)]
51pub struct CalibrationConfig {
52 #[serde(default, skip_serializing_if = "Option::is_none")]
53 pub samples: Option<usize>,
54 #[serde(default, skip_serializing_if = "Option::is_none")]
55 pub method: Option<String>,
56 #[serde(default, skip_serializing_if = "Option::is_none")]
57 pub percentile: Option<f64>,
58}