tauri-plugin-decor 1.0.1

Opinionated window decoration controls for Tauri apps.
Documentation
use std::sync::Mutex;

static OVERLAY_WINDOWS: Mutex<Vec<String>> = Mutex::new(Vec::new());

pub(crate) fn register(label: &str) {
    if let Ok(mut windows) = OVERLAY_WINDOWS.lock() {
        let label = label.to_string();
        if !windows.contains(&label) {
            windows.push(label);
        }
    }
}

pub(crate) fn contains(label: &str) -> bool {
    OVERLAY_WINDOWS
        .lock()
        .is_ok_and(|w| w.iter().any(|l| l == label))
}

pub(crate) fn labels() -> Vec<String> {
    OVERLAY_WINDOWS
        .lock()
        .map(|w| w.clone())
        .unwrap_or_default()
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn registry_is_idempotent() {
        let label = "overlay-test-window";
        register(label);
        register(label);
        assert!(contains(label));
    }

    #[test]
    fn registry_is_negative_for_unknown_label() {
        assert!(!contains("unknown-overlay-label"));
    }
}