1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use serde::Deserialize;
use tauri::generate_handler;
use tauri::plugin::{Builder, TauriPlugin};
use tauri::Runtime;

mod platform;
use platform::set_theme;

#[derive(Debug, Clone, Copy, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum Theme {
    Auto,
    Light,
    Dark,
}

pub struct ThemePlugin;

impl ThemePlugin {
    pub fn init<R: Runtime>() -> TauriPlugin<R, Option<()>> {
        Builder::new("theme")
            .invoke_handler(generate_handler![set_theme])
            .build()
    }
}