feat: improve DX of events (#12)
* feat: improve DX of events * Update global_shortcut.rs * Update event.rs * deploy docs to gh pages * Delete rustdoc.yml * add tests for global shortcut * improve logs produced by tauri_log * wip docs * update docs * move error to separate module * feat: simplify functions returning array backed iterators * rebase and cleanup * fixes
This commit is contained in:
parent
300fe18d22
commit
e28a0bb749
18 changed files with 655 additions and 289 deletions
|
@ -1,10 +1,38 @@
|
|||
use anyhow::ensure;
|
||||
use futures::StreamExt;
|
||||
use tauri_sys::{event, tauri};
|
||||
|
||||
pub async fn emit() -> anyhow::Result<()> {
|
||||
event::emit("foo", &"bar").await?;
|
||||
event::emit("javascript-event", &"bar").await?;
|
||||
|
||||
ensure!(tauri::invoke::<_, bool>("verify_receive", &()).await?);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn listen() -> anyhow::Result<()> {
|
||||
let events = event::listen::<u32>("rust-event-listen").await?;
|
||||
tauri::invoke::<_, ()>("emit_event_5_times", &()).await?;
|
||||
|
||||
let events: Vec<u32> = events
|
||||
.take(5)
|
||||
.map(|e| e.payload)
|
||||
.collect()
|
||||
.await;
|
||||
|
||||
ensure!(events == vec![0, 1, 2, 3, 4]);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn once() -> anyhow::Result<()> {
|
||||
// this causes enough delay for `once` to register it's event listener before the event gets triggered
|
||||
wasm_bindgen_futures::spawn_local(async {
|
||||
tauri::invoke::<_, ()>("emit_event", &()).await.unwrap();
|
||||
});
|
||||
let event = event::once::<String>("rust-event-once").await?;
|
||||
|
||||
ensure!(event.payload == "Hello World from Rust!");
|
||||
|
||||
Ok(())
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue