diff --git a/crates/events/src/lib.rs b/crates/events/src/lib.rs index ef81f9aa..7f928a2a 100644 --- a/crates/events/src/lib.rs +++ b/crates/events/src/lib.rs @@ -230,7 +230,7 @@ thread_local! { pub struct EventListener { target: EventTarget, event_type: Cow<'static, str>, - callback: Option>, + callback: Option>, phase: EventListenerPhase, } @@ -239,7 +239,7 @@ impl EventListener { fn raw_new( target: &EventTarget, event_type: Cow<'static, str>, - callback: Closure, + callback: Closure, options: &AddEventListenerOptions, phase: EventListenerPhase, ) -> Self { @@ -283,7 +283,7 @@ impl EventListener { /// # use gloo_events::{EventListener, EventListenerOptions}; /// # let target = unimplemented!(); /// # let event_type = "click"; - /// # let callback = move |e| {}; + /// # fn callback(_: &web_sys::Event) {} /// # /// let options = EventListenerOptions::enable_prevent_default(); /// @@ -302,7 +302,7 @@ impl EventListener { /// # use gloo_events::{EventListener, EventListenerOptions}; /// # let target = unimplemented!(); /// # let event_type = "click"; - /// # let callback = move |e| {}; + /// # fn callback(_: &web_sys::Event) {} /// # /// // This runs the event listener in the capture phase, rather than the bubble phase /// let options = EventListenerOptions::run_in_capture_phase(); @@ -322,7 +322,7 @@ impl EventListener { /// # let target = unimplemented!(); /// # /// let listener = EventListener::new(&target, "click", move |event| { - /// let event = event.dyn_into::().unwrap_throw(); + /// let event = event.dyn_ref::().unwrap_throw(); /// /// // ... /// }); @@ -331,9 +331,9 @@ impl EventListener { pub fn new(target: &EventTarget, event_type: S, callback: F) -> Self where S: Into>, - F: FnMut(Event) + 'static, + F: FnMut(&Event) + 'static, { - let callback = Closure::wrap(Box::new(callback) as Box); + let callback = Closure::wrap(Box::new(callback) as Box); NEW_OPTIONS.with(move |options| { Self::raw_new( @@ -362,7 +362,7 @@ impl EventListener { /// # let target = unimplemented!(); /// # /// let listener = EventListener::once(&target, "load", move |event| { - /// let event = event.dyn_into::().unwrap_throw(); + /// let event = event.dyn_ref::().unwrap_throw(); /// /// // ... /// }); @@ -371,7 +371,7 @@ impl EventListener { pub fn once(target: &EventTarget, event_type: S, callback: F) -> Self where S: Into>, - F: FnOnce(Event) + 'static, + F: FnOnce(&Event) + 'static, { let callback = Closure::once(callback); @@ -450,9 +450,9 @@ impl EventListener { ) -> Self where S: Into>, - F: FnMut(Event) + 'static, + F: FnMut(&Event) + 'static, { - let callback = Closure::wrap(Box::new(callback) as Box); + let callback = Closure::wrap(Box::new(callback) as Box); Self::raw_new( target, @@ -514,7 +514,7 @@ impl EventListener { ) -> Self where S: Into>, - F: FnOnce(Event) + 'static, + F: FnOnce(&Event) + 'static, { let callback = Closure::once(callback); @@ -551,7 +551,7 @@ impl EventListener { /// Returns the callback. #[inline] - pub fn callback(&self) -> &Closure { + pub fn callback(&self) -> &Closure { // This will never panic, because `callback` is always `Some` self.callback.as_ref().unwrap_throw() } diff --git a/crates/events/tests/web.rs b/crates/events/tests/web.rs index e05942f1..3f79ebea 100644 --- a/crates/events/tests/web.rs +++ b/crates/events/tests/web.rs @@ -84,7 +84,7 @@ fn new_with_options() -> impl Future { }, move |e| { sender.send(|| { - is(e.dyn_into::().is_ok(), true)?; + is(e.dyn_ref::().is_some(), true)?; Ok(()) }); @@ -111,7 +111,7 @@ fn once_with_options() -> impl Future { }, move |e| { sender.send(|| { - is(e.dyn_into::().is_ok(), true)?; + is(e.dyn_ref::().is_some(), true)?; Ok(()) }); @@ -131,7 +131,7 @@ fn new() -> impl Future { let _handler = EventListener::new(&body, "click", move |e| { sender.send(|| { - is(e.dyn_into::().is_ok(), true)?; + is(e.dyn_ref::().is_some(), true)?; Ok(()) }); @@ -150,7 +150,7 @@ fn once() -> impl Future { let _handler = EventListener::once(&body, "click", move |e| { sender.send(|| { - is(e.dyn_into::().is_ok(), true)?; + is(e.dyn_ref::().is_some(), true)?; Ok(()) });