summaryrefslogtreecommitdiff
path: root/src/features.rs
blob: 1ec5dff2dec575b5035dbd68624a5abe59630716 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use crate::{Error, Model};

#[derive(Clone, Debug, Eq, PartialEq, serde::Deserialize)]
pub struct Status {
    pub firmware_version_minor: u8,
    pub firmware_version_major: u8,
    pub serial_number: u32,
    pub config_num_lock: u8,
    pub config_caps_lock: u8,
    pub config_scroll_lock: u8,
    pub config_enable_user_password: u8,
    _unused: u8,
}

pub trait Basic {
    fn get_model(&self) -> Model;
    fn get_status(&self) -> Result<Status, Error>;
    fn get_user_retry_count(&self) -> Result<u8, Error>;
    fn get_admin_retry_count(&self) -> Result<u8, Error>;
}