summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobin Krahl <robin.krahl@ireas.org>2019-01-23 04:36:57 +0000
committerRobin Krahl <robin.krahl@ireas.org>2019-01-23 05:38:30 +0100
commitb00bbaa5603504597729ed2ce0d1e8ff50ea078d (patch)
tree27af8fa4359afbe0f61a93982203657727a76623 /src
parentd4663961c41a0fb6f81f4a54aefd0fedce49d350 (diff)
downloadnitrokey-rs-b00bbaa5603504597729ed2ce0d1e8ff50ea078d.tar.gz
nitrokey-rs-b00bbaa5603504597729ed2ce0d1e8ff50ea078d.tar.bz2
Implement From<(T: Device, Error)> for Error
Not all users of the authenticate methods want to use the device after an error, so implementing From<(T: Device, Error)> for Error makes it easier for them to discard the device.
Diffstat (limited to 'src')
-rw-r--r--src/error.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/error.rs b/src/error.rs
index 4b82c6e..551dd0f 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -4,6 +4,8 @@ use std::os::raw;
use std::result;
use std::str;
+use crate::device;
+
/// An error returned by the nitrokey crate.
#[derive(Debug)]
pub enum Error {
@@ -67,6 +69,12 @@ impl From<str::Utf8Error> for Error {
}
}
+impl<T: device::Device> From<(T, Error)> for Error {
+ fn from((_, err): (T, Error)) -> Self {
+ err
+ }
+}
+
impl error::Error for Error {
fn source(&self) -> Option<&(dyn error::Error + 'static)> {
match *self {