diff --git a/Cargo.lock b/Cargo.lock index 0142993c..d3f139d8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2453,6 +2453,7 @@ version = "0.14.0-dev" dependencies = [ "iced_beacon", "iced_core", + "log", ] [[package]] diff --git a/debug/Cargo.toml b/debug/Cargo.toml index 574cc11a..1c5e7324 100644 --- a/debug/Cargo.toml +++ b/debug/Cargo.toml @@ -15,6 +15,7 @@ enable = ["dep:iced_beacon"] [dependencies] iced_core.workspace = true +log.workspace = true [target.'cfg(not(target_arch = "wasm32"))'.dependencies] iced_beacon.workspace = true diff --git a/debug/src/lib.rs b/debug/src/lib.rs index 00d42049..a15f05c9 100644 --- a/debug/src/lib.rs +++ b/debug/src/lib.rs @@ -135,7 +135,16 @@ mod internal { pub fn update(message: &impl std::fmt::Debug) -> Span { let span = span(span::Stage::Update); + + let start = Instant::now(); let message = format!("{message:?}"); + let elapsed = start.elapsed(); + + if elapsed.as_millis() >= 1 { + log::warn!( + "Slow `Debug` implementation of `Message` (took {elapsed:?})!" + ); + } BEACON.log(client::Event::MessageLogged(if message.len() > 49 { format!("{}...", &message[..49])