diff options
| author | Robin Krahl <robin.krahl@ireas.org> | 2019-01-23 04:36:57 +0000 | 
|---|---|---|
| committer | Robin Krahl <robin.krahl@ireas.org> | 2019-01-23 05:38:30 +0100 | 
| commit | b00bbaa5603504597729ed2ce0d1e8ff50ea078d (patch) | |
| tree | 27af8fa4359afbe0f61a93982203657727a76623 /src | |
| parent | d4663961c41a0fb6f81f4a54aefd0fedce49d350 (diff) | |
| download | nitrokey-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.rs | 8 | 
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 { | 
