dioxus_web/events/
load.rs

1use 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}