Skip to main content

tauri_plugin_single_window/
config.rs

1#[derive(Clone, Default)]
2pub struct Config {
3    pub duplicate_notice: Option<String>,
4    pub(crate) activation_callback: Option<std::sync::Arc<dyn std::any::Any + Send + Sync>>,
5}
6
7impl Config {
8    pub fn new() -> Self {
9        Self {
10            duplicate_notice: None,
11            activation_callback: None,
12        }
13    }
14
15    pub fn with_duplicate_notice<S: Into<String>>(mut self, duplicate_notice: S) -> Self {
16        self.duplicate_notice = Some(duplicate_notice.into());
17        self
18    }
19
20    pub fn on_activate<R, F>(mut self, callback: F) -> Self
21    where
22        R: tauri::Runtime,
23        F: Fn(tauri::AppHandle<R>, crate::ActivationPayload) + Send + Sync + 'static,
24    {
25        let callback: crate::ActivationCallback<R> = std::sync::Arc::new(callback);
26        self.activation_callback = Some(std::sync::Arc::new(callback));
27        self
28    }
29}