From 1c6b4d4dfd498c4127a076c48b6c37e05eaacb62 Mon Sep 17 00:00:00 2001 From: Robin Krahl Date: Sun, 30 Dec 2018 00:04:49 +0100 Subject: 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. --- src/otp.rs | 2 +- src/util.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/otp.rs b/src/otp.rs index 801f52c..6f6bd80 100644 --- a/src/otp.rs +++ b/src/otp.rs @@ -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, -- cgit v1.2.1