1use crate::lvgl;
2
3#[derive(Clone, Copy, Debug, PartialEq, Eq, Default)]
4#[repr(u8)]
5pub enum State {
6 #[default]
7 Released,
8 Pressed,
9}
10
11impl From<State> for lvgl::lv_indev_state_t {
12 fn from(value: State) -> lvgl::lv_indev_state_t {
13 match value {
14 State::Pressed => lvgl::lv_indev_state_t_LV_INDEV_STATE_PRESSED,
15 State::Released => lvgl::lv_indev_state_t_LV_INDEV_STATE_RELEASED,
16 }
17 }
18}
19
20impl From<State> for u8 {
21 fn from(value: State) -> u8 {
22 value as u8
23 }
24}
25
26impl TryFrom<u8> for State {
27 type Error = ();
28
29 fn try_from(value: u8) -> Result<Self, Self::Error> {
30 match value {
31 0 => Ok(Self::Released),
32 1 => Ok(Self::Pressed),
33 _ => Err(()),
34 }
35 }
36}