Skip to main content

tauri_plugin_vicons/
lib.rs

1use tauri::{
2    plugin::{Builder, TauriPlugin},
3    Manager, Runtime,
4};
5mod desktop;
6mod models;
7mod commands;
8mod error;
9mod logger;
10
11pub use error::{Error, Result};
12
13use desktop::Vicons;
14
15pub trait ViconsExt<R: Runtime> {
16    fn vicons(&self) -> &Vicons<R>;
17}
18
19impl<R: Runtime, T: Manager<R>> crate::ViconsExt<R> for T {
20    fn vicons(&self) -> &Vicons<R> {
21        self.state::<Vicons<R>>().inner()
22    }
23}
24
25/// Initializes the plugin.
26pub fn init<R: Runtime>() -> TauriPlugin<R> {
27    Builder::new("vicons")
28        .invoke_handler(tauri::generate_handler![
29            commands::get_icon,
30            commands::get_symbol
31        ])
32        .setup(|app, api| {
33            let vicons = desktop::init(app, api)?;
34            app.manage(vicons);
35            Ok(())
36        })
37        .build()
38}