tauri_plugin_vicons/
lib.rs

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