diff --git a/frontend/src/controls_panel.rs b/frontend/src/controls_panel.rs index b92e0e1..490526f 100644 --- a/frontend/src/controls_panel.rs +++ b/frontend/src/controls_panel.rs @@ -563,6 +563,7 @@ impl ControlsPanel { }); // Lazy loading to not freeze the main thread + // @TODO replace with grouping and/or virtual scroll (https://dev.to/adamklein/build-your-own-virtual-scroll-part-i-11ib) const CHUNK_SIZE: usize = 50; let mut chunked_vars_for_ui: Vec> = <_>::default(); let mut chunk = Vec::with_capacity(CHUNK_SIZE); diff --git a/frontend/src/platform.rs b/frontend/src/platform.rs index fed02b2..8a83384 100644 --- a/frontend/src/platform.rs +++ b/frontend/src/platform.rs @@ -33,7 +33,11 @@ pub async fn get_time_table() -> wellen::TimeTable { platform::get_time_table().await } -pub async fn load_signal_and_get_timeline(signal_ref: wellen::SignalRef, screen_width: u32, block_height: u32) -> shared::Timeline { +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 } diff --git a/frontend/src/platform/browser.rs b/frontend/src/platform/browser.rs index ad9844f..2957a41 100644 --- a/frontend/src/platform/browser.rs +++ b/frontend/src/platform/browser.rs @@ -81,7 +81,11 @@ 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_signal_and_get_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 eef69e6..549626f 100644 --- a/frontend/src/platform/tauri.rs +++ b/frontend/src/platform/tauri.rs @@ -21,7 +21,11 @@ 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_signal_and_get_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 { serde_wasm_bindgen::from_value( tauri_glue::load_signal_and_get_timeline(signal_ref.index(), screen_width, block_height) .await @@ -55,7 +59,11 @@ mod tauri_glue { pub async fn get_time_table() -> Result; #[wasm_bindgen(catch)] - pub async fn load_signal_and_get_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 9a9cc43..b32062e 100644 --- a/frontend/src/waveform_panel.rs +++ b/frontend/src/waveform_panel.rs @@ -116,7 +116,12 @@ impl WaveformPanel { let var = hierarchy.get(var_ref); let signal_ref = var.signal_ref(); - let timeline = platform::load_signal_and_get_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; let timescale = hierarchy.timescale(); // @TODO remove diff --git a/shared/src/lib.rs b/shared/src/lib.rs index 90d80e6..d6abfe6 100644 --- a/shared/src/lib.rs +++ b/shared/src/lib.rs @@ -5,7 +5,7 @@ pub mod wellen_helpers; #[derive(Serialize, Deserialize, Debug, Default)] #[serde(crate = "serde")] pub struct Timeline { - pub blocks: Vec + pub blocks: Vec, } #[derive(Serialize, Deserialize, Debug, Default)] diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 0e4da34..70b9de9 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -97,7 +97,7 @@ pub fn run() { } fn signal_to_timeline( - signal: &wellen::Signal, + signal: &wellen::Signal, time_table: &[wellen::Time], screen_width: u32, block_height: u32, @@ -108,7 +108,7 @@ fn signal_to_timeline( const LABEL_X_PADDING: u32 = 10; let Some(last_time) = time_table.last().copied() else { - return shared::Timeline::default() + return shared::Timeline::default(); }; let last_time = last_time as f64; @@ -136,7 +136,7 @@ fn signal_to_timeline( let block_width = (next_block_x - block_x) as u32; if block_width < MIN_BLOCK_WIDTH { continue; - } + } let value = value.to_string(); // @TODO dynamic formatter @@ -158,7 +158,7 @@ fn signal_to_timeline( x: block_x as u32, width: block_width, height: block_height, - label, + label, }; blocks.push(block); }