hirola_dom/
types.rs

1use hirola_core::effect::EffectAttribute;
2use strum::{Display, EnumString};
3
4use crate::effects::attr_on::OnEffect;
5
6#[derive(Debug, EnumString, Display)]
7#[strum(serialize_all = "lowercase")]
8pub enum DomEvent {
9    Abort,
10    Autocomplete,
11    AutocompleteError,
12    Blur,
13    Cancel,
14    CanPlay,
15    CanPlayThrough,
16    Change,
17    Click,
18    Close,
19    ContextMenu,
20    CueChange,
21    DblClick,
22    Drag,
23    DragEnd,
24    DragEnter,
25    DragExit,
26    DragLeave,
27    DragOver,
28    DragStart,
29    Drop,
30    DurationChange,
31    Emptied,
32    Ended,
33    Error,
34    Focus,
35    Input,
36    Invalid,
37    KeyDown,
38    KeyPress,
39    KeyUp,
40    Load,
41    LoadedData,
42    LoadedMetadata,
43    LoadStart,
44    MouseDown,
45    MouseEnter,
46    MouseLeave,
47    MouseMove,
48    MouseOut,
49    MouseOver,
50    MouseUp,
51    MouseWheel,
52    Pause,
53    Play,
54    Playing,
55    Progress,
56    RateChange,
57    Reset,
58    Resize,
59    Scroll,
60    Seeked,
61    Seeking,
62    Select,
63    Show,
64    Sort,
65    Stalled,
66    Submit,
67    Suspend,
68    TimeUpdate,
69    Toggle,
70    VolumeChange,
71    Waiting,
72}
73
74impl EffectAttribute for DomEvent {
75    type Handler = OnEffect;
76    fn read_as_attr(&self) -> String {
77        self.to_string().to_lowercase()
78    }
79}