aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Krahl <robin.krahl@ireas.org>2020-01-29 14:04:06 +0100
committerRobin Krahl <robin.krahl@ireas.org>2020-02-03 10:19:21 +0100
commit4a9dab94400cb00ae1e28485ddc64d46cf27ed3c (patch)
tree2ef021b47d3c1f43918e18aa03f1e1ee6aa6dc3b
parent395ace0131ef6cd655a222734f2cc8d037395a3b (diff)
downloadnitrokey-rs-4a9dab94400cb00ae1e28485ddc64d46cf27ed3c.tar.gz
nitrokey-rs-4a9dab94400cb00ae1e28485ddc64d46cf27ed3c.tar.bz2
Implement From<&NK_status> for RawConfig
This makes it easier to parse only the config part of the NK_status struct and avoids code duplication in the upcoming get_config refactoring.
-rw-r--r--src/config.rs11
-rw-r--r--src/device/mod.rs8
2 files changed, 12 insertions, 7 deletions
diff --git a/src/config.rs b/src/config.rs
index cb678d7..9b9de3c 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -83,6 +83,17 @@ impl convert::TryFrom<Config> for RawConfig {
}
}
+impl From<&nitrokey_sys::NK_status> for RawConfig {
+ fn from(status: &nitrokey_sys::NK_status) -> Self {
+ Self {
+ numlock: status.config_numlock,
+ capslock: status.config_capslock,
+ scrollock: status.config_scrolllock,
+ user_password: status.otp_user_password,
+ }
+ }
+}
+
impl From<[u8; 5]> for RawConfig {
fn from(data: [u8; 5]) -> Self {
RawConfig {
diff --git a/src/device/mod.rs b/src/device/mod.rs
index a25ad1b..403bb1f 100644
--- a/src/device/mod.rs
+++ b/src/device/mod.rs
@@ -191,13 +191,7 @@ impl From<nitrokey_sys::NK_status> for Status {
minor: status.firmware_version_minor,
},
serial_number: status.serial_number_smart_card,
- config: RawConfig {
- numlock: status.config_numlock,
- capslock: status.config_capslock,
- scrollock: status.config_scrolllock,
- user_password: status.otp_user_password,
- }
- .into(),
+ config: RawConfig::from(&status).into(),
}
}
}