diff options
author | Robin Krahl <robin.krahl@ireas.org> | 2018-12-30 00:04:49 +0100 |
---|---|---|
committer | Robin Krahl <robin.krahl@ireas.org> | 2018-12-30 00:04:49 +0100 |
commit | 1c6b4d4dfd498c4127a076c48b6c37e05eaacb62 (patch) | |
tree | acd8c4935c1894a4e26ffd2d6c23a435c07931ec | |
parent | 62d698db4941c06905cb08bdbe4cc35ad54132d5 (diff) | |
download | nitrokey-rs-1c6b4d4dfd498c4127a076c48b6c37e05eaacb62.tar.gz nitrokey-rs-1c6b4d4dfd498c4127a076c48b6c37e05eaacb62.tar.bz2 |
Derive Clone and Copy for CommandError, LogLevel, OtpMode
As these three enums are scalar values, this patch derives the Clone and
Copy traits for them. This should avoid unnecessary allocations and
reduce the memory footprint.
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | src/otp.rs | 2 | ||||
-rw-r--r-- | src/util.rs | 4 |
3 files changed, 5 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index a30e531..11092ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ - Remove the `test-no-device` feature. - Update the rand dependency to version 0.6. - Add function `Device::get_model` that returns the connected model. +- Derive the `Copy` and `Clone` traits for the enums `CommandError`, `LogLevel` + and `OtpMode` # v0.2.1 (2018-12-10) @@ -5,7 +5,7 @@ use nitrokey_sys; use crate::util::{get_command_result, get_cstring, result_from_string, CommandError}; /// Modes for one-time password generation. -#[derive(Debug, PartialEq)] +#[derive(Clone, Copy, Debug, PartialEq)] pub enum OtpMode { /// Generate one-time passwords with six digits. SixDigits, diff --git a/src/util.rs b/src/util.rs index d98e675..a2e957e 100644 --- a/src/util.rs +++ b/src/util.rs @@ -6,7 +6,7 @@ use libc::{c_void, free}; use rand::Rng; /// Error types returned by Nitrokey device or by the library. -#[derive(Debug, PartialEq)] +#[derive(Clone, Copy, Debug, PartialEq)] pub enum CommandError { /// A packet with a wrong checksum has been sent or received. WrongCrc, @@ -43,7 +43,7 @@ pub enum CommandError { /// /// Setting the log level to a lower level enables all output from higher levels too. Currently, /// only the log levels `Warning`, `DebugL1`, `Debug` and `DebugL2` are actually used. -#[derive(Debug, PartialEq)] +#[derive(Clone, Copy, Debug, PartialEq)] pub enum LogLevel { /// Error messages. Currently not used. Error, |