From 3f61f9f3fe293c8841a80c6aac928b3b26b913f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Fri, 7 Jun 2024 00:45:05 +0200 Subject: [PATCH] remove `load_and_get_signal`, rename `timeline` to `load_signal_and_get_timeline` --- frontend/src/platform.rs | 8 ++------ frontend/src/platform/browser.rs | 13 ++----------- frontend/src/platform/tauri.rs | 18 +++--------------- frontend/src/waveform_panel.rs | 3 +-- frontend/typescript/bundles/tauri_glue.js | 10 +++------- frontend/typescript/tauri_glue/tauri_glue.ts | 8 ++------ src-tauri/src/lib.rs | 20 ++------------------ 7 files changed, 15 insertions(+), 65 deletions(-) diff --git a/frontend/src/platform.rs b/frontend/src/platform.rs index b9661dc..fed02b2 100644 --- a/frontend/src/platform.rs +++ b/frontend/src/platform.rs @@ -33,12 +33,8 @@ pub async fn get_time_table() -> wellen::TimeTable { platform::get_time_table().await } -pub async fn load_and_get_signal(signal_ref: wellen::SignalRef) -> wellen::Signal { - platform::load_and_get_signal(signal_ref).await -} - -pub async fn timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { - platform::timeline(signal_ref, screen_width, block_height).await +pub async fn load_signal_and_get_timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { + platform::load_signal_and_get_timeline(signal_ref, screen_width, block_height).await } pub async fn unload_signal(signal_ref: wellen::SignalRef) { diff --git a/frontend/src/platform/browser.rs b/frontend/src/platform/browser.rs index e4a3be6..ad9844f 100644 --- a/frontend/src/platform/browser.rs +++ b/frontend/src/platform/browser.rs @@ -81,17 +81,8 @@ pub(super) async fn get_time_table() -> wellen::TimeTable { serde_json::from_value(serde_json::to_value(time_table).unwrap_throw()).unwrap_throw() } -pub(super) async fn load_and_get_signal(signal_ref: wellen::SignalRef) -> wellen::Signal { - let mut waveform_lock = STORE.waveform.lock().unwrap_throw(); - let waveform = waveform_lock.as_mut().unwrap_throw(); - // @TODO maybe run it in a thread to not block the main one and then - waveform.load_signals(&[signal_ref]); - let signal = waveform.get_signal(signal_ref).unwrap_throw(); - // @TODO `clone` / `Rc/Arc` / refactor? - serde_json::from_value(serde_json::to_value(signal).unwrap_throw()).unwrap_throw() -} - -pub(super) async fn timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { +pub(super) async fn load_signal_and_get_timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { + // @TODO implement, copy from tauri platform shared::Timeline { blocks: Vec::new() } } diff --git a/frontend/src/platform/tauri.rs b/frontend/src/platform/tauri.rs index 4058965..eef69e6 100644 --- a/frontend/src/platform/tauri.rs +++ b/frontend/src/platform/tauri.rs @@ -21,18 +21,9 @@ pub(super) async fn get_time_table() -> wellen::TimeTable { serde_wasm_bindgen::from_value(tauri_glue::get_time_table().await.unwrap_throw()).unwrap_throw() } -pub(super) async fn load_and_get_signal(signal_ref: wellen::SignalRef) -> wellen::Signal { +pub(super) async fn load_signal_and_get_timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { serde_wasm_bindgen::from_value( - tauri_glue::load_and_get_signal(signal_ref.index()) - .await - .unwrap_throw(), - ) - .unwrap_throw() -} - -pub(super) async fn timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { - serde_wasm_bindgen::from_value( - tauri_glue::timeline(signal_ref.index(), screen_width, block_height) + tauri_glue::load_signal_and_get_timeline(signal_ref.index(), screen_width, block_height) .await .unwrap_throw(), ) @@ -64,10 +55,7 @@ mod tauri_glue { pub async fn get_time_table() -> Result; #[wasm_bindgen(catch)] - pub async fn load_and_get_signal(signal_ref_index: usize) -> Result; - - #[wasm_bindgen(catch)] - pub async fn timeline(signal_ref_index: usize, screen_width: u32, block_height: u32) -> Result; + pub async fn load_signal_and_get_timeline(signal_ref_index: usize, screen_width: u32, block_height: u32) -> Result; #[wasm_bindgen(catch)] pub async fn unload_signal(signal_ref_index: usize) -> Result<(), JsValue>; diff --git a/frontend/src/waveform_panel.rs b/frontend/src/waveform_panel.rs index 178774e..f066a88 100644 --- a/frontend/src/waveform_panel.rs +++ b/frontend/src/waveform_panel.rs @@ -113,11 +113,10 @@ impl WaveformPanel { eprintln!("timetable is empty"); return; } - let last_time = time_table.last().copied().unwrap_throw(); let var = hierarchy.get(var_ref); let signal_ref = var.signal_ref(); - let timeline = platform::timeline(signal_ref, controller.screen_width(), ROW_HEIGHT).await; + let timeline = platform::load_signal_and_get_timeline(signal_ref, controller.screen_width(), ROW_HEIGHT).await; // @TODO remove zoon::println!("Timeline in Rust: {timeline:#?}"); diff --git a/frontend/typescript/bundles/tauri_glue.js b/frontend/typescript/bundles/tauri_glue.js index e24fb27..883f8ce 100644 --- a/frontend/typescript/bundles/tauri_glue.js +++ b/frontend/typescript/bundles/tauri_glue.js @@ -2523,11 +2523,8 @@ async function get_hierarchy() { async function get_time_table() { return await invoke2("get_time_table"); } -async function load_and_get_signal(signal_ref_index) { - return await invoke2("load_and_get_signal", { signal_ref_index }); -} -async function timeline(signal_ref_index, screen_width, block_height) { - return await invoke2("timeline", { signal_ref_index, screen_width, block_height }); +async function load_signal_and_get_timeline(signal_ref_index, screen_width, block_height) { + return await invoke2("load_signal_and_get_timeline", { signal_ref_index, screen_width, block_height }); } async function unload_signal(signal_ref_index) { return await invoke2("unload_signal", { signal_ref_index }); @@ -2535,9 +2532,8 @@ async function unload_signal(signal_ref_index) { export { get_hierarchy, get_time_table, - load_and_get_signal, + load_signal_and_get_timeline, pick_and_load_waveform, show_window, - timeline, unload_signal }; diff --git a/frontend/typescript/tauri_glue/tauri_glue.ts b/frontend/typescript/tauri_glue/tauri_glue.ts index 8f007dd..0476113 100644 --- a/frontend/typescript/tauri_glue/tauri_glue.ts +++ b/frontend/typescript/tauri_glue/tauri_glue.ts @@ -26,12 +26,8 @@ export async function get_time_table(): Promise { return await invoke("get_time_table"); } -export async function load_and_get_signal(signal_ref_index: number): Promise { - return await invoke("load_and_get_signal", { signal_ref_index }); -} - -export async function timeline(signal_ref_index: number, screen_width: number, block_height: number): Promise { - return await invoke("timeline", { signal_ref_index, screen_width, block_height }); +export async function load_signal_and_get_timeline(signal_ref_index: number, screen_width: number, block_height: number): Promise { + return await invoke("load_signal_and_get_timeline", { signal_ref_index, screen_width, block_height }); } export async function unload_signal(signal_ref_index: number): Promise { diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 9d92c72..0e4da34 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -47,22 +47,7 @@ async fn get_time_table(store: tauri::State<'_, Store>) -> Result, -) -> Result { - let signal_ref = wellen::SignalRef::from_index(signal_ref_index).unwrap(); - let mut waveform_lock = store.waveform.lock().unwrap(); - let waveform = waveform_lock.as_mut().unwrap(); - // @TODO maybe run it in a thread to not block the main one and then - // make the command async or return the result through a Tauri channel - waveform.load_signals_multi_threaded(&[signal_ref]); - let signal = waveform.get_signal(signal_ref).unwrap(); - Ok(serde_json::to_value(signal).unwrap()) -} - -#[tauri::command(rename_all = "snake_case")] -async fn timeline( +async fn load_signal_and_get_timeline( signal_ref_index: usize, screen_width: u32, block_height: u32, @@ -104,8 +89,7 @@ pub fn run() { pick_and_load_waveform, get_hierarchy, get_time_table, - load_and_get_signal, - timeline, + load_signal_and_get_timeline, unload_signal, ]) .run(tauri::generate_context!())