graphics/input/
state.rs

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}