From cd5e7ce2a6c0f64dffceb792f12258e5519b128f Mon Sep 17 00:00:00 2001 From: widberg Date: Tue, 10 Mar 2026 01:39:23 -0400 Subject: [PATCH] Remove async-std from gui --- Cargo.lock | 114 +++----------------------------------- bff-gui/Cargo.toml | 1 - bff-gui/src/panels/top.rs | 27 +++++---- bff/src/macros/classes.rs | 2 +- 4 files changed, 24 insertions(+), 120 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7215c78..e75ecec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -83,7 +83,7 @@ checksum = "be7f5cf6165be10a54b2655fa2e0e12b2509f38ed6fc43e11c31fdb7ee6230bb" dependencies = [ "accesskit", "accesskit_atspi_common", - "async-channel 2.3.1", + "async-channel", "async-executor", "async-task", "atspi", @@ -356,23 +356,12 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" dependencies = [ - "event-listener 5.4.0", + "event-listener", "event-listener-strategy", "futures-core", "pin-project-lite", ] -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener 2.5.3", - "futures-core", -] - [[package]] name = "async-channel" version = "2.3.1" @@ -409,21 +398,6 @@ dependencies = [ "futures-lite", ] -[[package]] -name = "async-global-executor" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" -dependencies = [ - "async-channel 2.3.1", - "async-executor", - "async-io", - "async-lock", - "blocking", - "futures-lite", - "once_cell", -] - [[package]] name = "async-io" version = "2.4.0" @@ -449,7 +423,7 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 5.4.0", + "event-listener", "event-listener-strategy", "pin-project-lite", ] @@ -460,14 +434,14 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" dependencies = [ - "async-channel 2.3.1", + "async-channel", "async-io", "async-lock", "async-signal", "async-task", "blocking", "cfg-if", - "event-listener 5.4.0", + "event-listener", "futures-lite", "rustix", "tracing", @@ -502,32 +476,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "async-std" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c634475f29802fde2b8f0b505b1bd00dfe4df7d4a000f0b36f7671197d5c3615" -dependencies = [ - "async-channel 1.9.0", - "async-global-executor", - "async-io", - "async-lock", - "crossbeam-utils", - "futures-channel", - "futures-core", - "futures-io", - "futures-lite", - "gloo-timers", - "kv-log-macro", - "log", - "memchr", - "once_cell", - "pin-project-lite", - "pin-utils", - "slab", - "wasm-bindgen-futures", -] - [[package]] name = "async-task" version = "4.7.1" @@ -690,7 +638,6 @@ dependencies = [ name = "bff-gui" version = "0.1.0" dependencies = [ - "async-std", "bff", "clap", "derive_more", @@ -831,7 +778,7 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ - "async-channel 2.3.1", + "async-channel", "async-task", "futures-io", "futures-lite", @@ -1746,12 +1693,6 @@ version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f" -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - [[package]] name = "event-listener" version = "5.4.0" @@ -1769,7 +1710,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" dependencies = [ - "event-listener 5.4.0", + "event-listener", "pin-project-lite", ] @@ -1852,15 +1793,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - [[package]] name = "futures-core" version = "0.3.31" @@ -1986,18 +1918,6 @@ dependencies = [ "xml-rs", ] -[[package]] -name = "gloo-timers" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "glow" version = "0.13.1" @@ -2530,15 +2450,6 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" -[[package]] -name = "kv-log-macro" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" -dependencies = [ - "log", -] - [[package]] name = "libc" version = "0.2.169" @@ -2621,9 +2532,6 @@ name = "log" version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" -dependencies = [ - "value-bag", -] [[package]] name = "lz4" @@ -4443,12 +4351,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "value-bag" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2" - [[package]] name = "version_check" version = "0.9.5" @@ -5567,7 +5469,7 @@ dependencies = [ "async-trait", "blocking", "enumflags2", - "event-listener 5.4.0", + "event-listener", "futures-core", "futures-sink", "futures-util", diff --git a/bff-gui/Cargo.toml b/bff-gui/Cargo.toml index 3f9430d..d9e255e 100644 --- a/bff-gui/Cargo.toml +++ b/bff-gui/Cargo.toml @@ -40,7 +40,6 @@ tokio = { version = "1.44.2", features = ["rt-multi-thread", "time"] } # https://github.com/rust-lang/cargo/issues/1197 [target.'cfg(target_arch = "wasm32")'.dependencies] -async-std = "1.12.0" eframe = { version = "0.29.1", features = ["persistence"] } three-d = { version = "0.18.2", default-features = false, features = [ "egui_glow", diff --git a/bff-gui/src/panels/top.rs b/bff-gui/src/panels/top.rs index 5711bed..6e63534 100644 --- a/bff-gui/src/panels/top.rs +++ b/bff-gui/src/panels/top.rs @@ -56,7 +56,7 @@ impl Gui { let ctx = ui.ctx().clone(); let tx = self.tx.clone(); let name_context = Arc::clone(&self.name_context); - let future = async { + wasm_bindgen_futures::spawn_local(async move { let dialog = bff::bigfile::platforms::extensions() .iter() .map(|s| s.to_str().unwrap()) @@ -65,17 +65,20 @@ impl Gui { |acc, d| acc.add_filter(d, &[d]), ) .pick_file() - .await - .unwrap(); - load_bf( - ctx, - dialog.file_name(), - dialog.read().await, - tx, - name_context, - ); - }; - async_std::task::block_on(future); + .await; + if let Some(dialog) = dialog { + load_bf( + ctx.clone(), + dialog.file_name(), + dialog.read().await, + tx, + name_context, + ); + } else { + let _ = tx.send(None); + ctx.request_repaint(); + } + }); true } pub fn menubar_panel( diff --git a/bff/src/macros/classes.rs b/bff/src/macros/classes.rs index 2428e62..5c2129f 100644 --- a/bff/src/macros/classes.rs +++ b/bff/src/macros/classes.rs @@ -217,7 +217,7 @@ macro_rules! classes { )* )? $( - mod $variant_mod; + pub mod $variant_mod; use self::$variant_mod::$variant; )* $crate::macros::classes::classes!(@declare_class_kind $kind $class { $($pattern => $variant),* });