hyprshell_core_lib/config/
check.rs1use crate::config::Config;
2use anyhow::bail;
3
4pub fn check(config: &Config) -> anyhow::Result<()> {
5 if config
6 .windows
7 .as_ref()
8 .map(|w| w.scale >= 15f64 || w.scale <= 0f64)
9 .unwrap_or(false)
10 {
11 bail!("Scale factor must be less than 15 and greater than 0");
12 }
13
14 if let Some(l) = &config.launcher {
15 let mut used: Vec<char> = vec![];
16 for engine in l.plugins.websearch.as_ref().map(|ws| &ws.engines).unwrap_or(&vec![]) {
17 if engine.url.is_empty() {
18 bail!("Search engine url cannot be empty");
19 }
20 if engine.name.is_empty() {
21 bail!("Search engine name cannot be empty");
22 }
23 if used.contains(&engine.key) {
24 bail!("Duplicate search engine key: {}", engine.key);
25 } else {
26 used.push(engine.key);
27 }
28 }
29 if l.plugins.calc.is_some() {
30 #[cfg(not(feature = "calc"))]
31 {
32 bail!("Calc Plugin enabled but not compiled in, please enable the calc feature");
33 }
34 }
35 };
36
37 Ok(())
38}