tauri_plugin_configurate/
lib.rs1use tauri::{
2 plugin::{Builder, TauriPlugin},
3 Manager, Runtime,
4};
5
6pub use models::*;
7
8#[cfg(desktop)]
9mod desktop;
10#[cfg(mobile)]
11mod mobile;
12
13mod commands;
14mod dotpath;
15mod error;
16mod keyring_store;
17mod models;
18mod storage;
19
20pub use error::{Error, Result};
21
22#[cfg(desktop)]
23use desktop::Configurate;
24#[cfg(mobile)]
25use mobile::Configurate;
26
27pub trait ConfigurateExt<R: Runtime> {
30 fn configurate(&self) -> &Configurate<R>;
31}
32
33impl<R: Runtime, T: Manager<R>> crate::ConfigurateExt<R> for T {
34 fn configurate(&self) -> &Configurate<R> {
35 self.state::<Configurate<R>>().inner()
36 }
37}
38
39pub fn init<R: Runtime>() -> TauriPlugin<R> {
41 Builder::new("configurate")
42 .invoke_handler(tauri::generate_handler![
43 commands::create,
44 commands::load,
45 commands::save,
46 commands::delete,
47 commands::load_all,
48 commands::save_all,
49 commands::unlock,
50 ])
51 .setup(|app, api| {
52 #[cfg(mobile)]
53 let configurate = mobile::init(app, api)?;
54 #[cfg(desktop)]
55 let configurate = desktop::init(app, api)?;
56 app.manage(configurate);
57 Ok(())
58 })
59 .build()
60}