use serde::{Deserialize, Serialize};
use crate::scoring::ScoringConfig;
fn default_refresh_interval() -> u64 {
300
}
fn default_theme() -> String {
"auto".to_string()
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(deny_unknown_fields)]
pub struct Config {
#[serde(default)]
pub scoring: Option<ScoringConfig>,
pub queries: Vec<QueryConfig>,
#[serde(default = "default_refresh_interval")]
pub auto_refresh_interval: u64,
#[serde(default = "default_theme")]
pub theme: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(deny_unknown_fields)]
pub struct QueryConfig {
pub name: Option<String>,
pub query: String,
#[serde(default)]
pub scoring: Option<ScoringConfig>,
}