1use serde::{Deserialize, Serialize};
2
3use crate::scoring::ScoringConfig;
4
5fn default_refresh_interval() -> u64 {
6 300
7}
8
9#[derive(Debug, Clone, Deserialize, Serialize)]
10#[serde(deny_unknown_fields)]
11pub struct Config {
12 #[serde(default)]
14 pub scoring: Option<ScoringConfig>,
15
16 pub queries: Vec<QueryConfig>,
17
18 #[serde(default = "default_refresh_interval")]
20 pub auto_refresh_interval: u64,
21}
22
23#[derive(Debug, Clone, Deserialize, Serialize)]
24#[serde(deny_unknown_fields)]
25pub struct QueryConfig {
26 pub name: Option<String>,
27 pub query: String,
28
29 #[serde(default)]
31 pub scoring: Option<ScoringConfig>,
32}