dioxus_web/events/
load.rs1use std::any::Any;
2
3use dioxus_html::HasImageData;
4use web_sys::Event;
5
6use super::WebEventExt;
7
8#[derive(Clone)]
9pub(crate) struct WebImageEvent {
10 raw: Event,
11 error: bool,
12}
13
14impl WebImageEvent {
15 pub fn new(raw: Event, error: bool) -> Self {
16 Self { raw, error }
17 }
18}
19
20impl HasImageData for WebImageEvent {
21 fn load_error(&self) -> bool {
22 self.error
23 }
24
25 fn as_any(&self) -> &dyn Any {
26 &self.raw
27 }
28}
29
30impl WebEventExt for dioxus_html::ImageData {
31 type WebEvent = Event;
32
33 #[inline(always)]
34 fn try_as_web_event(&self) -> Option<Event> {
35 self.downcast::<WebImageEvent>().map(|e| e.raw.clone())
36 }
37}