diff options
Diffstat (limited to 'src-tauri/src')
-rw-r--r-- | src-tauri/src/main.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 65bb630c..464a5430 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -2,9 +2,43 @@ all(not(debug_assertions), target_os = "windows"), windows_subsystem = "windows" )] +use std::sync::{Arc, Mutex}; +use std::time::Duration; +use tauri::{Manager, State}; +use tokio::time::sleep; + +#[derive(Default)] +struct Counter(Arc<Mutex<i32>>); fn main() { tauri::Builder::default() + .setup(|app| { + let app_handle = app.app_handle(); + tauri::async_runtime::spawn(async move { + loop { + sleep(Duration::from_millis(2000)).await; + println!("sending backend-ping"); + app_handle.emit_all("backend-ping", "ping").unwrap(); + } + }); + + Ok(()) + }) + .manage(Counter::default()) + .invoke_handler(tauri::generate_handler![hello_world, add_count]) .run(tauri::generate_context!()) .expect("error while running tauri application"); } + +#[tauri::command] +fn hello_world() -> String { + "Hello World!!!!".to_string() +} + +#[tauri::command] +fn add_count(num: i32, counter: State<'_, Counter>) -> String { + let mut val = counter.0.lock().unwrap(); + *val += num; + + format!("{val}") +} |