use tauri::{ plugin::{Builder, TauriPlugin}, Runtime, }; #[cfg(mobile)] use tauri::Manager; #[cfg(mobile)] mod mobile; #[cfg(mobile)] use mobile::Vpnservice; mod error; mod models; pub use error::{Error, Result}; /// Extensions to [`tauri::App`], [`tauri::AppHandle`] and [`tauri::Window`] to access the vpnservice APIs. #[cfg(mobile)] pub trait VpnserviceExt { fn vpnservice(&self) -> &Vpnservice; } #[cfg(mobile)] impl> crate::VpnserviceExt for T { fn vpnservice(&self) -> &Vpnservice { self.state::>().inner() } } /// Initializes the plugin. pub fn init() -> TauriPlugin { Builder::new("vpnservice") .setup(|_app, _api| { #[cfg(mobile)] { let vpnservice = mobile::init(_app, _api)?; _app.manage(vpnservice); } Ok(()) }) .build() }