tauri_plugin_user_data/
lib.rs1use tauri::{
2 plugin::{Builder, TauriPlugin},
3 Manager, Runtime,
4};
5
6#[cfg(desktop)]
7mod desktop;
8#[cfg(mobile)]
9mod mobile;
10
11mod commands;
12mod error;
13
14pub use error::{Error, Result};
15
16#[cfg(desktop)]
17use desktop::UserData;
18#[cfg(mobile)]
19use mobile::UserData;
20
21pub trait UserDataExt<R: Runtime> {
23 fn user_data(&self) -> &UserData<R>;
24}
25
26impl<R: Runtime, T: Manager<R>> crate::UserDataExt<R> for T {
27 fn user_data(&self) -> &UserData<R> {
28 self.state::<UserData<R>>().inner()
29 }
30}
31
32pub fn init<R: Runtime>() -> TauriPlugin<R> {
34 Builder::new("user-data")
35 .invoke_handler(tauri::generate_handler![commands::get_user_info])
36 .setup(|app, api| {
37 #[cfg(mobile)]
38 let user_data = mobile::init(app, api)?;
39 #[cfg(desktop)]
40 let user_data = desktop::init(app, api)?;
41 app.manage(user_data);
42 Ok(())
43 })
44 .build()
45}