summaryrefslogtreecommitdiff
path: root/src/features.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/features.rs')
-rw-r--r--src/features.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/features.rs b/src/features.rs
new file mode 100644
index 0000000..1ec5dff
--- /dev/null
+++ b/src/features.rs
@@ -0,0 +1,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>;
+}