From fedb32d24292e46b652b937fbbf78ec44280b659 Mon Sep 17 00:00:00 2001 From: Daniel Griffen Date: Sun, 28 Oct 2018 19:55:37 -0700 Subject: [PATCH] collate cancelled --- src/lib.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 93825c1..4662abd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -72,7 +72,6 @@ macro_rules! post_event { fun(event); } },)+); // big tuple of (Handlers, Handlers, Handlers, Handlers, ...) - } } } @@ -97,7 +96,7 @@ macro_rules! post_event_cancellable { } test(event); - let cancelled = ($({ + let cancelled = [$({ // event type setup static EVENT_ID: ::std::sync::atomic::AtomicUsize = ::std::sync::atomic::ATOMIC_USIZE_INIT; static EVENT_ID_INIT: ::std::sync::Once = ::std::sync::ONCE_INIT; @@ -110,15 +109,16 @@ macro_rules! post_event_cancellable { let handlers = $crate::get_post_targets::<$t>(bus, event, id); for (_pri, fun) in handlers.iter() { - fun(event as &mut $t); if Cancellable::cancelled(event) { break; } + fun(event as &mut $t); } event.cancelled() - },)+); // big tuple of (Handlers, Handlers, Handlers, Handlers, ...) + },)+]; // big tuple of (Handlers, Handlers, Handlers, Handlers, ...) + cancelled.iter().fold(false, |n, i| n || *i) } } }