Skip to main content

tandem_server/config/
webui.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize, Default)]
4pub struct WebUiConfig {
5    #[serde(default)]
6    pub enabled: bool,
7    #[serde(default = "default_web_ui_prefix")]
8    pub path_prefix: String,
9}
10
11pub fn normalize_web_ui_prefix(prefix: &str) -> String {
12    let trimmed = prefix.trim();
13    if trimmed.is_empty() || trimmed == "/" {
14        return "/admin".to_string();
15    }
16    let with_leading = if trimmed.starts_with('/') {
17        trimmed.to_string()
18    } else {
19        format!("/{trimmed}")
20    };
21    with_leading.trim_end_matches('/').to_string()
22}
23
24fn default_web_ui_prefix() -> String {
25    "/admin".to_string()
26}