use crate::commands::{cek_izin, daftar_perangkat, kirim, minta_izin}; use tauri::{ Manager, Runtime, plugin::{Builder, TauriPlugin}, }; pub use models::*; #[cfg(desktop)] mod desktop; #[cfg(mobile)] mod mobile; mod commands; mod error; mod models; pub use error::{Error, Result}; #[cfg(desktop)] use desktop::Bluclas; #[cfg(mobile)] use mobile::Bluclas; /// Extensions to [`tauri::App`], [`tauri::AppHandle`] and [`tauri::Window`] to access the bluclas APIs. pub trait BluclasExt { fn bluclas(&self) -> &Bluclas; } impl> crate::BluclasExt for T { fn bluclas(&self) -> &Bluclas { self.state::>().inner() } } /// Initializes the plugin. pub fn init() -> TauriPlugin { Builder::new("bluclas") .invoke_handler(tauri::generate_handler![ cek_izin, minta_izin, daftar_perangkat, kirim ]) .setup(|app, api| { #[cfg(mobile)] let bluclas = mobile::init(app, api)?; #[cfg(desktop)] let bluclas = desktop::init(app, api)?; app.manage(bluclas); Ok(()) }) .build() }