From 9d962e6f16d059fb0ed58e278513a311189772bb Mon Sep 17 00:00:00 2001 From: Robin Krahl Date: Sat, 12 Jan 2019 15:30:54 +0000 Subject: Introduce VolumeMode enum in device The VolumeMode enum will be used when setting the access mode for the unencrypted volume. It can also be used when refactoring the VolumeStatus enum in a future release. --- src/device.rs | 18 ++++++++++++++++++ src/lib.rs | 3 ++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/device.rs b/src/device.rs index e047975..792ac2f 100644 --- a/src/device.rs +++ b/src/device.rs @@ -33,6 +33,24 @@ impl fmt::Display for Model { } } +/// The access mode of a volume on the Nitrokey Storage. +#[derive(Clone, Copy, Debug, PartialEq)] +pub enum VolumeMode { + /// A read-only volume. + ReadOnly, + /// A read-write volume. + ReadWrite, +} + +impl fmt::Display for VolumeMode { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match *self { + VolumeMode::ReadOnly => f.write_str("read-only"), + VolumeMode::ReadWrite => f.write_str("read-write"), + } + } +} + /// A wrapper for a Nitrokey device of unknown type. /// /// Use the function [`connect`][] to obtain a wrapped instance. The wrapper implements all traits diff --git a/src/lib.rs b/src/lib.rs index 6c5d739..c50b713 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -98,7 +98,8 @@ use nitrokey_sys; pub use crate::auth::{Admin, Authenticate, User}; pub use crate::config::Config; pub use crate::device::{ - connect, connect_model, Device, DeviceWrapper, Model, Pro, Storage, StorageStatus, VolumeStatus, + connect, connect_model, Device, DeviceWrapper, Model, Pro, Storage, StorageStatus, VolumeMode, + VolumeStatus, }; pub use crate::otp::{ConfigureOtp, GenerateOtp, OtpMode, OtpSlotData}; pub use crate::pws::{GetPasswordSafe, PasswordSafe, SLOT_COUNT}; -- cgit v1.2.1