#[cfg(desktop)]
mod desktop;
#[cfg(mobile)]
mod mobile;
mod commands;
mod error_bridge;
mod models;
mod payloads;
pub use error_bridge::normalize_ios_bookmark_error;
pub use models::*;
pub use payloads::{pick_and_bookmark_payload, pick_folder_and_bookmark_payload};
#[cfg(desktop)]
pub(crate) use desktop::IosBookmark;
#[cfg(mobile)]
pub(crate) use mobile::IosBookmark;
use tauri::{
plugin::{Builder, TauriPlugin},
Manager, Runtime,
};
pub fn init<R: Runtime>() -> TauriPlugin<R> {
Builder::new("ios-bookmark")
.invoke_handler(tauri::generate_handler![
commands::pick_and_bookmark,
commands::pick_folder_and_bookmark,
commands::read_by_bookmark,
commands::read_by_folder_bookmark,
commands::forget_bookmark,
])
.setup(|app, api| {
#[cfg(mobile)]
let bookmark = mobile::init(app, api)?;
#[cfg(desktop)]
let bookmark = desktop::init(app, api)?;
app.manage(bookmark);
Ok(())
})
.build()
}