Clone in a terminal:
Commit aa095dd
Johan Mattsson - 2026-05-31T22:31:40+00:00
aa095dd0dcf09fada1044ee50616b3ad0df687cfjohan.mattsson.m@gmail.com

Move callback init

Changed files (5)

Diff

diff --git a/Cargo.lock b/Cargo.lockindex 480197e..c943492 100644--- a/Cargo.lock+++ b/Cargo.lock@@ -30,16 +30,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"  [[package]]-name = "ctor"-version = "0.1.26"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"-dependencies = [- "quote",- "syn 1.0.109",-]--[[package]] name = "equivalent" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index"@@ -98,7 +88,7 @@ checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [  "proc-macro2",  "quote",- "syn 2.0.117",+ "syn", ]  [[package]]@@ -144,17 +134,6 @@ dependencies = [ ]  [[package]]-name = "ghost"-version = "0.1.21"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "fe3de42e89f5bd0686d0058be48d545333311e34c763f85324938ba7cc473149"-dependencies = [- "proc-macro2",- "quote",- "syn 2.0.117",-]--[[package]] name = "gloo" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index"@@ -345,7 +324,7 @@ dependencies = [  "proc-macro-crate",  "proc-macro2",  "quote",- "syn 2.0.117",+ "syn", ]  [[package]]@@ -376,24 +355,11 @@ dependencies = [  [[package]] name = "inventory"-version = "0.1.11"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "f0eb5160c60ba1e809707918ee329adb99d222888155835c6feedba19f6c3fd4"-dependencies = [- "ctor",- "ghost",- "inventory-impl",-]--[[package]]-name = "inventory-impl"-version = "0.1.11"+version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "7e41b53715c6f0c4be49510bb82dee2c1e51c8586d885abe65396e82ed518548"+checksum = "a4f0c30c76f2f4ccee3fe55a2435f691ca00c0e4bd87abe4f4a851b1d4dac39b" dependencies = [- "proc-macro2",- "quote",- "syn 1.0.109",+ "rustversion", ]  [[package]]@@ -421,7 +387,7 @@ dependencies = [  "gloo",  "proc-macro2",  "quote",- "syn 2.0.117",+ "syn", ]  [[package]]@@ -480,7 +446,7 @@ checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" dependencies = [  "proc-macro2",  "quote",- "syn 2.0.117",+ "syn", ]  [[package]]@@ -588,7 +554,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [  "proc-macro2",  "quote",- "syn 2.0.117",+ "syn", ]  [[package]]@@ -624,17 +590,6 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"  [[package]] name = "syn"-version = "1.0.109"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"-dependencies = [- "proc-macro2",- "quote",- "unicode-ident",-]--[[package]]-name = "syn" version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"@@ -670,7 +625,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [  "proc-macro2",  "quote",- "syn 2.0.117",+ "syn", ]  [[package]]@@ -681,7 +636,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [  "proc-macro2",  "quote",- "syn 2.0.117",+ "syn", ]  [[package]]@@ -755,7 +710,7 @@ dependencies = [  "bumpalo",  "proc-macro2",  "quote",- "syn 2.0.117",+ "syn",  "wasm-bindgen-shared", ] diff --git a/Cargo.toml b/Cargo.tomlindex eb8ba8f..d251a18 100644--- a/Cargo.toml+++ b/Cargo.toml@@ -11,5 +11,5 @@ wasm-bindgen = "0.2.122" web-sys = { version = "0.3.99", features = ["Element", "HtmlElement", "NodeList"] } serde = { version = "1.0", features = ["derive"] } serde-wasm-bindgen = "0.5"-inventory = "0.1"+inventory = "0.3.24" js-sys = "0.3"diff --git a/examples/clickcounter/Cargo.lock b/examples/clickcounter/Cargo.lockindex 59e1732..873e8da 100644--- a/examples/clickcounter/Cargo.lock+++ b/examples/clickcounter/Cargo.lock@@ -52,16 +52,6 @@ dependencies = [ ]  [[package]]-name = "ctor"-version = "0.1.26"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"-dependencies = [- "quote",- "syn 1.0.109",-]--[[package]] name = "equivalent" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index"@@ -185,17 +175,6 @@ dependencies = [ ]  [[package]]-name = "ghost"-version = "0.1.21"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "fe3de42e89f5bd0686d0058be48d545333311e34c763f85324938ba7cc473149"-dependencies = [- "proc-macro2",- "quote",- "syn 2.0.117",-]--[[package]] name = "gloo" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index"@@ -440,17 +419,6 @@ dependencies = [  [[package]] name = "inventory"-version = "0.1.11"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "f0eb5160c60ba1e809707918ee329adb99d222888155835c6feedba19f6c3fd4"-dependencies = [- "ctor",- "ghost",- "inventory-impl",-]--[[package]]-name = "inventory" version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4f0c30c76f2f4ccee3fe55a2435f691ca00c0e4bd87abe4f4a851b1d4dac39b"@@ -459,17 +427,6 @@ dependencies = [ ]  [[package]]-name = "inventory-impl"-version = "0.1.11"-source = "registry+https://github.com/rust-lang/crates.io-index"-checksum = "7e41b53715c6f0c4be49510bb82dee2c1e51c8586d885abe65396e82ed518548"-dependencies = [- "proc-macro2",- "quote",- "syn 1.0.109",-]--[[package]] name = "itoa" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index"@@ -515,7 +472,7 @@ version = "0.1.0" dependencies = [  "gloo",  "gloo-console",- "inventory 0.1.11",+ "inventory",  "js-sys",  "kaja-callback-macro",  "serde",@@ -530,7 +487,7 @@ version = "0.1.0" dependencies = [  "console_error_panic_hook",  "gloo",- "inventory 0.3.24",+ "inventory",  "js-sys",  "kaja-callback-macro",  "kaja-html-macro",@@ -790,7 +747,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [  "proc-macro2",- "quote",  "unicode-ident", ] diff --git a/examples/clickcounter/src/lib.rs b/examples/clickcounter/src/lib.rsindex dc36532..58af1d7 100644--- a/examples/clickcounter/src/lib.rs+++ b/examples/clickcounter/src/lib.rs@@ -12,9 +12,6 @@ struct AppData {  pub static APP_DATA: RwLock<AppData> = RwLock::new(AppData { current_count: 0 }); -pub struct InitFn(fn());-inventory::collect!(InitFn);- #[callback("incrementCounter")] pub fn increment_counter() {     let mut app_data = APP_DATA.write().unwrap();@@ -58,12 +55,6 @@ fn update_counter_display(app_data: &AppData) {     } } -pub fn init_callbacks() {-    for init in inventory::iter::<InitFn> {-        (init.0)();-    }-}- #[wasm_bindgen(start)] pub fn init() {     std::panic::set_hook(Box::new(console_error_panic_hook::hook));diff --git a/src/lib.rs b/src/lib.rsindex 87a9df9..1aecfd2 100644--- a/src/lib.rs+++ b/src/lib.rs@@ -2,6 +2,9 @@ use gloo::console::log; use wasm_bindgen::JsCast; use web_sys::{Element, HtmlElement, NodeList}; +pub struct InitFn(pub fn());+inventory::collect!(InitFn);+ #[derive(Debug, Clone, Copy)] pub struct Error; @@ -22,6 +25,12 @@ unsafe impl Sync for CallbackRegistration {}  inventory::collect!(CallbackRegistration); +pub fn init_callbacks() {+    for init in inventory::iter::<InitFn> {+        (init.0)();+    }+}+ impl App {     pub fn new() -> Self {         App {}

Contact

Email: johan.mattsson.m@gmail.com
Mastodon: typo.social/@birdfont
GitHub: johanmattssonm
LinkedIn: johan-mattsson-2ab324112